首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下拉列表在敲除KoGrid中不起作用

下拉列表在敲除KoGrid中不起作用
EN

Stack Overflow用户
提问于 2013-04-09 16:50:19
回答 1查看 1.2K关注 0票数 3

我尝试使用自定义单元格模板在KoGrid单元格中显示一个下拉列表,但我不知道为什么它不能正常工作。

我有一个使用options, optionsText, optionsValue and optionsCaption和绑定的工作下拉列表的示例。但是KoGrid中类似的下拉列表不会显示任何元素。我的问题是我遗漏了什么/做错了什么,我如何解决这个问题?

链接到jsFiddle:http://jsfiddle.net/AxyWz/6/

HTML:

代码语言:javascript
复制
<p>
    Working drop-down list:
    <select data-bind="options: data, optionsText: 'name', optionsValue: 'id', optionsCaption: '-', value: selectedItemId"></select>
</p>

<p>
    Drop-down list not working in KoGrid:
    <div class="grid" data-bind="koGrid: gridOptions"></div>
</p>

<pre data-bind="text: ko.toJSON($root, null, 2)"></pre>

<script type="text/html" id="template">
    <select data-bind="options: $root.data, optionsText: 'name', optionsValue: 'id', optionsCaption: '-', value: $parent.entity[$data.field]"></select>
</script>

Javascript:

代码语言:javascript
复制
function Item(id, name) {
    this.id = ko.observable(id);
    this.name = ko.observable(name);
    this.parentId = ko.observable();
}

function ViewModel() {
    this.selectedItemId = ko.observable();

    this.data = ko.observableArray([
        new Item(1, 'aaa'),
        new Item(2, 'sss'),
        new Item(10, 'xxx'),
        new Item(14, 'zzz')
    ]);

    this.gridOptions = {
        data: this.data,
        canSelectRows: false,
        columnDefs: [
            { field: 'id', displayName: 'id' },
            { field: 'name', displayName: 'name' },
            { 
                field: 'parentId', displayName: 'parent',
                cellTemplate: $.trim($('#template').html())
            },
        ]
    };
}

ko.applyBindings(new ViewModel());
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-09 17:22:57

当您在细胞模板中时,您需要使用$userViewModel来访问您的"$root“视图模型。

documentation

$userViewModel:{{ko binding context}}//你用来实例化网格的视图模型的访问器。

所以你需要写下:

代码语言:javascript
复制
<script type="text/html" id="template">
    <select data-bind="options: $userViewModel.data, 
                       optionsText: 'name', optionsValue: 'id', 
                       optionsCaption: '-', value: $parent.entity[$data.field]">
    </select>
</script>

演示JSFiddle.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15897397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档