对于要添加的功能,我在同一页面上使用了两个不同的网格。所有这些网格都应该能够影响“删除”,“编辑”和“创建”按钮执行的代码。
为了分隔网格,我可以使用它们的名称,但这对于子网格来说是个问题。我当前使用的代码如下:
function deleteButton()
switch(selectedGrid) {
case $("#GridA").data("kendoGrid"):
log("A"); break;
case $("#GridB").data("kendoGrid"):
log("B"); break;
}
selectedGrid存储了一个网格,该网格应确定要执行的功能。 从该网格中,我希望提取模型(名称)并将其用作切换案例变量。结果看起来像这样:
function deleteButton()
switch(selectedGrid.Model) {
case 'modelA':
log("A"); break;
case 'modelB':
log("B"); break;
}
当前,我使用日志而不是函数,但是想法是相同的。之所以选择这种方法,是因为多个网格正在使用相同的模型,并且应该调用相同的情况。
kendo网格中的代码,用于调用该函数来设置selectedGrid变量:
.Event(event => event.Change("function(){onRowSelectGrid('grid', 'model');}"))
页面js中用于设置selectedGrid变量的代码:
function onRowSelectGrid(datagrid, model) {
if (typeof (selectedGrid) !== 'undefined' && selectedGrid !== $("#" + datagrid).data("kendoGrid")) {
//Remove rowselection from the previous grid
selectedGrid.select().removeClass("k-state-selected");
}
var grid = $("#" + datagrid).data("kendoGrid");
selectedGrid = grid;
}
我知道这不是您每天的情况,因此,如果唯一的解决方案是为每个网格设置单独的按钮,那么我会理解。但是,就我个人而言,我更希望拥有可以在所有网格中使用的动态代码。
如果有任何疑问或需要更多说明,请告诉我。如果有一种方法可以在某种程度上使用名称(包括子网格的名称)的情况下,那么我肯定想看看这种解决方案。
答案 0 :(得分:0)
好的,这可能不是最好的解决方案,但它可以工作。我所做的是在代码中添加了一些代码,以保存selectedgrid。
selectedGrid = grid;
通过在变量中添加“模型”以指示网格的模型:
selectedGrid.model= model;
这样,当通过按钮调用网格时,我可以调用model变量以指示应该使用哪种方法。
function deleteButton()
switch(selectedGrid.model) {
case 'modelA':
log("A"); break;
case 'modelB':
log("B"); break;
}
希望这可以帮助遇到相同问题的任何人。