Knockout.js KendoUI网格分配选项

Knockout.js KendoUI网格分配选项,knockout.js,kendo-ui,Knockout.js,Kendo Ui,我试图使用KendoUI网格来完成我的一个项目。我想绑定到网格的数据源有很多额外的部分,我不想将它们作为列加上其他几个选项。我想知道是否有一种方法可以从javascript为网格设置选项,但我在尝试使用“数据”选项时似乎遇到了问题 <div data-bind="kendoGrid: $parent.kendoGrid"></div> .... program = ko.observable(null), kendoGrid = { data: program.Bet

我试图使用KendoUI网格来完成我的一个项目。我想绑定到网格的数据源有很多额外的部分,我不想将它们作为列加上其他几个选项。我想知道是否有一种方法可以从javascript为网格设置选项,但我在尝试使用“数据”选项时似乎遇到了问题

<div data-bind="kendoGrid: $parent.kendoGrid"></div>


....
program = ko.observable(null),
kendoGrid = { data: program.BettingInterest, sortable: true, columnMenu: true,
            columns: [{ field: 'BettingInterestProgramNumber', title: 'Post' }, 
                { field: 'PostPosition', title: 'PP' }, { field: 'MLOdd', title: 'ML' },
                { field: 'FractionalOdd', title: 'Odds' }, 'Jockey', 'Trainer', 'Owner', 
                { field: 'WeightCarried', title: 'Weight' }, { field: 'Medication', title: 'Med' },
                { field: 'ClaimingPrice', title: 'Claiming' }, 'Breed'], 
            scrollable: false, resizable: true
        },
....

....
程序=可观测(空),
kendoGrid={data:program.BettingInterest,sortable:true,columnMenu:true,
列:[{字段:'BettingInterestProgramNumber',标题:'Post'},
{field:'PostPosition',title:'PP'},{field:'MLOdd',title:'ML'},
{字段:'segmentalodd',标题:'赔率'},'骑师','教练','所有者',
{字段:'WeightCarried',标题:'Weight'},{字段:'Medicing',标题:'Med'},
{字段:'ClaimingPrice',标题:'ClaimingPrice'},'品种'],
可滚动:false,可调整大小:true
},
....
“程序”在一系列级联下拉列表的最后一个之后填充
我的网格显示了列等,但并没有实际数据。我想知道我是否只是缺少了一些简单的东西…

要使这个属性与绑定一起工作,您需要创建一个表示当前程序更好兴趣的计算程序,以便它能够正确跟踪依赖项。您的视图模型看起来像:

var ViewModel = function() {
    this.program = ko.observable();
    this.programBettingInterest = ko.computed(function() {
       var program = this.program();
        return program ? program.BettingInterest : [];        
    }, this);

    this.myGrid = { data: this.programBettingInterest, sortable: true, columnMenu: true,
        columns: [{ field: 'propA', title: 'propertyA' }, 
            { field: 'propB', title: 'propertyB' }], 
        scrollable: false, resizable: true
    };
};

这里的示例:

您能展示一下
程序如何填充吗?我不确定是否可以将网格绑定到
程序。当
程序
上不存在该属性时,BettingInterest
。此外,在填充
程序
后,您可能希望尝试在网格上调用
.refresh()
。伟大的我觉得没有想到这一点很傻,因为我在没有使用KendoUI的时候也有类似的东西。