Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js 网格单元格中的Knockout-kendo.js下拉列表_Knockout.js_Kendo Ui - Fatal编程技术网

Knockout.js 网格单元格中的Knockout-kendo.js下拉列表

Knockout.js 网格单元格中的Knockout-kendo.js下拉列表,knockout.js,kendo-ui,Knockout.js,Kendo Ui,有没有合适的方法将剑道ui下拉列表集成到剑道ui网格的列中 这是我用rniemeyer的试过的。 美元内(文档)。准备就绪: 函数状态下拉编辑器(容器、选项){ $('') .appendTo(容器) .kendoDropDownList({ 自动绑定:错误, 数据源:{ 运输:{ 阅读:“/api/Status” } } }); HTML: 你可以使用击倒剑道的“使用模板”选项。下面是你的方法 <script id='rowTemplate' type='text/html'>

有没有合适的方法将剑道ui下拉列表集成到剑道ui网格的列中

这是我用rniemeyer的试过的。 美元内(文档)。准备就绪:

函数状态下拉编辑器(容器、选项){
$('')
.appendTo(容器)
.kendoDropDownList({
自动绑定:错误,
数据源:{
运输:{
阅读:“/api/Status”
}
}
});
HTML:


你可以使用击倒剑道的“使用模板”选项。下面是你的方法

<script id='rowTemplate' type='text/html'>
    <tr> <td> <span data-bind = "text:ProdName" > </span>        </td> 
        <td> <span data-bind = "text:UnitCost" > </span>        </td>
        <td> <span data-bind = "text:TotalAmt" > </span>        </td>
        <td> <select data-bind = "options:$parent.availabeStates,value:Status" > </select>        </td>
        </tr>
</script>
<table id="prod-grid" data-bind="kendoGrid: { data: Products, height: 480,
    sortable: true,useKOTemplates:true,rowTemplate: 'rowTemplate',

    columns: [ 
    { field: 'ProdName', title : 'Product Name'}, 
    { field: 'UnitCost', title: 'Unit Cost'}, 
    { field: 'TotalAmt', title: 'Batch Total'},
    { field:'Status', title: 'Status'}]
}"></table>
<div data-bind="foreach:Products">
<span data-bind="text:ProdName"></span>

</div>

var vm = function () {
    var self = this;
    self.Products = ko.observableArray();
    self.availabeStates = ['Fulfilled', 'Pending']
    self.init = function () {
        self.Products.push({
            ProdName: 'Prod1',
            UnitCost: 200,
            TotalAmt: 400,
            Status: 'Fulfilled'
        });
        self.Products.push({
            ProdName: 'Prod2',
            UnitCost: 200,
            TotalAmt: 400,
            Status: 'Pending'
        });

    };
    self.init();
}
ko.applyBindings(new vm());

var vm=函数(){
var self=这个;
self.Products=ko.observearray();
self.availableEstates=[“已完成”、“待定”]
self.init=函数(){
自我推销({
ProdName:“Prod1”,
单位成本:200,
总数:400,
状态:“已完成”
});
自我推销({
ProdName:“Prod2”,
单位成本:200,
总数:400,
状态:“待定”
});
};
self.init();
}
应用绑定(新vm());
这是给你的JSFIDLE
我没有故意使用剑道下拉列表,因为我对下拉列表的zIndex有问题,但这是你应该解决的问题,我想这与Q/A无关。

我建议你不要在绑定中定义你的
kendoGrid
与你的HTML内联。在我看来,这是一种糟糕的做法。它可能会导致各种问题。请将你的代码和标记分开E
<div id="prod-grid" data-bind="kendoGrid: { data: Products, height: 480,
    sortable: true, selectable: 'row', scrollable: true, resizable: true, pageable: false,
    columns: [ 
    { field: 'ProdName', title : 'Product Name'}, 
    { field: 'UnitCost', title: 'Unit Cost'}, 
    { field: 'TotalAmt', title: 'Batch Total'},
    { field: 'Manufacturer', title: 'Manufacturer'},
    { title: 'Status', editor: statusDropDownEditor}
}>
</div>
<script id='rowTemplate' type='text/html'>
    <tr> <td> <span data-bind = "text:ProdName" > </span>        </td> 
        <td> <span data-bind = "text:UnitCost" > </span>        </td>
        <td> <span data-bind = "text:TotalAmt" > </span>        </td>
        <td> <select data-bind = "options:$parent.availabeStates,value:Status" > </select>        </td>
        </tr>
</script>
<table id="prod-grid" data-bind="kendoGrid: { data: Products, height: 480,
    sortable: true,useKOTemplates:true,rowTemplate: 'rowTemplate',

    columns: [ 
    { field: 'ProdName', title : 'Product Name'}, 
    { field: 'UnitCost', title: 'Unit Cost'}, 
    { field: 'TotalAmt', title: 'Batch Total'},
    { field:'Status', title: 'Status'}]
}"></table>
<div data-bind="foreach:Products">
<span data-bind="text:ProdName"></span>

</div>

var vm = function () {
    var self = this;
    self.Products = ko.observableArray();
    self.availabeStates = ['Fulfilled', 'Pending']
    self.init = function () {
        self.Products.push({
            ProdName: 'Prod1',
            UnitCost: 200,
            TotalAmt: 400,
            Status: 'Fulfilled'
        });
        self.Products.push({
            ProdName: 'Prod2',
            UnitCost: 200,
            TotalAmt: 400,
            Status: 'Pending'
        });

    };
    self.init();
}
ko.applyBindings(new vm());