我使用带有弹出编辑模式的 KendoUI 网格。将过滤器应用于任何列后,无法正确添加新对象。多次按下添加按钮不会显示编辑弹出窗口。但清除过滤器后,空对象显示在网格中。有什么解决方法吗?
问问题
1275 次
1 回答
0
我找到了解决方法。而不是标准的添加按钮使用工具栏模板,其中添加链接“添加”与自定义处理程序触发网格添加。在该处理程序中检查是否在网格上使用了过滤,如果是,则将当前过滤存储到 var 并删除过滤。还绑定到网格“保存”和“取消”事件处理程序,这些处理程序将在添加新对象(或取消)后应用先前的过滤。
<kendo:grid-toolbarTemplate>
<div>
<a class="k-button k-button-icontext" onclick="addItemHandler()">Add</a>
...
var gridFilter;
function addItemHandler() {
var table = $("#myGrid").data("kendoGrid");
gridFilter = table.dataSource.filter();
if (gridFilter) {
table.dataSource.filter(null);
}
table.addRow();
}
function gridSavedHandler(e) {
restoreFilter(e.sender);
}
function gridEditCanceledHandler(e) {
e.preventDefault();
e.sender.cancelChanges();
restoreFilter(e.sender);
}
function restoreFilter(table) {
if (gridFilter) {
table.dataSource.filter(gridFilter);
gridFilter = null;
}
}
$(document).ready(pageInitHandler);
function pageInitHandler() {
var table = $("#myGrid").data("kendoGrid");
table.bind("save", gridSavedHandler);
table.bind("cancel", gridEditCanceledHandler);
}
解决方法很复杂,但确实有效。
于 2013-07-25T09:54:03.963 回答