我使用KendoUI网格和弹出编辑模式。将过滤器应用于任何列后,无法正确添加新对象。多次按“添加”按钮不会显示编辑弹出窗口。但清除过滤器后,空格对象会显示在网格中。 有没有解决方法?
答案 0 :(得分: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);
}
解决方法很复杂,但确实有效。