我正在使用带有主详细信息设置的 Kendo Grid。详细信息网格被命名为DetailsGrid_#=Id#,以便它可以访问父记录的id - 这部分工作正常。
我已经设置了详细信息网格来更新部分支持数据,并且需要能够在 $ajax 调用成功时刷新详细信息网格。我尝试使用以下方法选择详细信息网格:
var childGrid = $('#DetailsGrid_#=Id#').data("kendoGrid");
childGrid.refresh();
但是当我运行此代码时,我收到一个 Jquery 错误,指出“未捕获错误:语法错误,无法识别的表达式:DetailsGrid_#=Id#”
任何人都可以建议选择详细信息网格的正确方法,或者调用刷新的其他方法吗?
更新:在对查询选择器进行了一些进一步研究后,我发现我需要转义 = & # 字符。我现在修改了代码,如下所示,它克服了“无法识别的表达式”错误,但我现在收到错误“无法调用未定义的‘刷新’方法”,因此网格未被识别
var param = "DetailsGrid_#=Id#";
var escapedParam = param.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@@])/g, '\\$1');
//function escape(param) {
// return param.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@@])/g, '\\\\$1');
//}
var childGrid = $('#' + escapedParam ).data("kendoGrid");
childGrid.refresh();
最佳答案
因为,我不知道你如何指定网格的Id。
获取要刷新的网格的 ID。将其存储在变量中。
var newId = Id;// Id is Grid Id
var childGrid = $('#DetailsGrid_' + newId).data("kendoGrid");
childGrid.refresh();
关于jquery - Kendo Grid MVC - 刷新子/细节网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21988629/