jquery - Kendo Grid MVC - 刷新子/细节网格

标签 jquery kendo-ui kendo-grid kendo-asp.net-mvc

我正在使用带有主详细信息设置的 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/

相关文章:

javascript - Kendo TreeView 请求展开但不显示返回的数据

javascript - 使用jquery绘制垂直线

javascript - Kendo UI Grid Widget 客户端对数字列进行过滤

javascript - 如何防止在 javascript 中打开剑道网格编辑器弹出窗口

javascript - Bootstrap 工具提示问题

javascript 函数在更新面板中进行完整的回发

javascript - 在表单提交期间渲染 js.erb 文件 ajax Rails

javascript - 当存在 anchor 时触发背景颜色的 JS/Jquery 转换

javascript - 使用键盘存储以前的剑道下拉列表选项

html - Kendo UI网格编辑模式列样式