剑道-在选择网格单元格时更新另一个网格(mvvm)
Kendo - on select of a grid's cell update another grid (mvvm)
我有这两个基本网格(http://jsbin.com/zofoje),在一个网格中选择行后,另一个网格应相应地更新(例如:在第二个网格中应显示所选员工的订单):
<div id="view1" style="width: 30rem; float: left">
<div data-role="grid" id="grid1"
data-columns="[
{ 'field': 'EmployeeID'}
]"
data-selectable="true"
data-bind="source: dataSource, events: {change: onGrid1Select}"
>
</div>
<div data-role="grid" id="grid2"
data-columns="[
{ 'field': 'EmployeeID'},
{ 'field': 'OrderID'}
]"
data-bind="source: dataSource"
>
</div>
我试着用2个视图模型来做,我想要干净地访问第二个网格的运输动作。然而,我没有得到任何地方与我的尝试:
var viewModel1 = kendo.observable({
selectedEmployeeID: 1,
dataSource: new kendo.data.DataSource({
type: "odata",
transport: {
read: {
url: "http://demos.kendoui.com/service/Northwind.svc/Employees"
}
},
schema: {
model: {
id: "EmployeeID"
}
},
}),
onGrid1Select: function(e){
var grid1 = $("#grid1").data("kendoGrid");
var model = grid1.dataItem(grid1.select());
this.set("selectedEmployeeID", model.EmployeeID);
console.log("selectedEmployeeID: ", this.get("selectedEmployeeID"));
}
})
var viewModel2 = kendo.observable({
dataSource: new kendo.data.DataSource({
type: "odata",
transport: {
read: {
url: "http://demos.kendoui.com/service/Northwind.svc/Orders"
}
},
filter: {
field: "EmployeeID",
operator: "eq",
value: viewModel1.get("selectedEmployeeID")
},
schema: {
model: {
id: "OrderID"
}
},
})
})
kendo.bind($("#view1"), viewModel1);
kendo.bind($("#view2"), viewModel2);
我在这里看到一个类似的例子,虽然它不是mvvm,但它与本地数据http://jsfiddle.net/scaillerie/UbeXn/1/一起工作。在我的例子中,我将如何更新第二个网格的数据源?
dataSource Filter不监听任何变量的变化,这些变量可能被用来设置它的参数。它基本上只是在它被设置的时候获取这些值的快照。如果您想根据新值过滤数据源,则需要重做过滤器。
在你的onGrid1Select函数中添加这样的东西应该可以达到这个效果:
viewModel2.get("dataSource").filter({field: "EmployeeID", operator: "eq", value: this.get("selectedEmployeeID")});
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 使用clickToggle并在单击另一个元素时关闭元素
- 通过jquery将网格视图数据发送到另一个页面
- jqGrid-当我点击网格中的另一个复选框时,选中多选复选框
- EXTJS 4.2:点击按钮,在新窗口中将选定的网格行从一个网格复制到另一个网格
- 在 threejs 中确定一个网格是否在另一个网格内
- 我在同一域中并排打开了两个浏览器.我想将一个网格的选定行拖到另一个浏览器.可能吗
- 如何在一个窗体上创建子网格并将其值传递给另一个窗体中的查找
- 如何使用 ExtJS 4.1 将网格放入另一个网格的单元格中
- 在另一个视图上获取剑道网格的选定值
- 将angularjs网格数据从一个控制器暴露到另一个控制器
- 如何将多个网格视图行发送到另一个页面,并在中继器中填充这些行
- 剑道网格在我转到另一个页面后保持过滤状态
- 在剑道网格中创建另一个工具栏
- 剑道-在选择网格单元格时更新另一个网格(mvvm)
- 如何从一个网格过渡到另一个
- ExtJs双击网格行应该将项目移动到另一个网格
- 如何打开一个弹出对话框在网格视图(另一个弹出)的超链接点击
- 如何在模板中隐藏基于另一个字段'值的元素- kendoui网格
- 为什么是Dojo网格.刷新正在进行另一个服务器调用