Javascript 剑道UI网格过滤器不';以前打开弹出窗口时无法工作
我有一个剑道UI网格,其中一些列可以被过滤。对于该列中的每一行,可以打开一个弹出窗口以查看特定条目的一些详细信息 我可以打开弹出窗口没有任何问题。但是:在关闭它并尝试过滤任何列之后,我得到以下错误:JavaScript运行时错误:无法获取未定义或空引用的属性“toggle” 如果我在打开弹出窗口之前过滤一列,它就像一个符咒。 如果我过滤一列,然后打开弹出窗口,已经过滤的列可以再次过滤,但其他列不能 我不知道为什么在打开和关闭弹出窗口后不能过滤列 任何想法或提示都会非常有用。谢谢 HTML: 打开弹出窗口的链接/字符串:Javascript 剑道UI网格过滤器不';以前打开弹出窗口时无法工作,javascript,kendo-ui,popup,kendo-grid,Javascript,Kendo Ui,Popup,Kendo Grid,我有一个剑道UI网格,其中一些列可以被过滤。对于该列中的每一行,可以打开一个弹出窗口以查看特定条目的一些详细信息 我可以打开弹出窗口没有任何问题。但是:在关闭它并尝试过滤任何列之后,我得到以下错误:JavaScript运行时错误:无法获取未定义或空引用的属性“toggle” 如果我在打开弹出窗口之前过滤一列,它就像一个符咒。 如果我过滤一列,然后打开弹出窗口,已经过滤的列可以再次过滤,但其他列不能 我不知道为什么在打开和关闭弹出窗口后不能过滤列 任何想法或提示都会非常有用。谢谢 HTML: 打开
function createProcessActionString(process) {
var det = '<a class="makeANiceMouse" onclick="processDetailUrl(' + process.Id + ', ' + grid.dataSource.page() + ')">Details</a>';
return det;
}
我删除了不必要的栏目等等
编辑:我试图在filterMenuInit中初始化筛选器。打开和关闭弹出窗口后,我单击了其中一列的过滤器图标,得到了错误:JavaScript运行时错误:无法获取未定义或空引用的属性“toggle”。和以前一样
编辑:我使用了windoof.destroy(),但之后无法访问过滤器
编辑解决方案:我有一个解决办法,可以再次使用过滤器。在打开弹出窗口之前,我只是假装点击每一个按钮。它并不漂亮,但到目前为止,它为我服务
但是似乎所有东西都被那该死的弹出窗口踢死了。我甚至不能再访问网格的数据源了。。真奇怪 我也在处理同样的问题,但数据不在那里,我得到了很好的传递。签出或使用onDataBound并使用e.sender从弹出窗口的onClose中获取与.data相对的网格对象的句柄(“KendoGrid”),这就是我修复它的原因。不过,在弹出窗口关闭后,我仍在尝试让我的过滤器正常工作 我想你在FilterManuinit事件中遇到了一些问题:你能分享你的网格和弹出代码吗?@j4ro我添加了代码我已经尽力复制了它,但在最新的剑道(2014.3.1119)中,我没有看到这样的错误。Mby你应该升级剑道吗?或者,若你们能在小提琴上复制它,那个就太棒了:)我猜剑道不能打开文件管理器动画容器,因为它假设你们的窗口仍然是打开的。因此,请尝试添加
windoof.destroy()代码>在窗口关闭事件的最后一行。无论如何,在点击processDetailUrl后,您正在创建新的一个窗口对象。我试图在JSFIDLE上复制它,但我无法打开那个该死的弹出窗口。。我也有同样的想法,通过点击关闭,弹出窗口不会真正关闭。我试过windoof.destroy();但在它被销毁后,我得到了一个错误:无法获取未定义的属性“open”。。。我在某个地方读到,通过单击“关闭”,弹出窗口会自动被销毁。。此外,我仍然可以使用分页和detailgrid。。。
$("#processGrid").kendoGrid({
sortable: true,
pageable: true,
selectable: true,
filterable: {
extra: false
},
dataSource: {
type: "aspnetmvc-ajax",
transport: {
read: {
url: "/Home/GetProcesses",
cache: false,
type: "POST",
dataType: "json"
},
parameterMap: function (data) {
return $.extend({}, data, { sort: data.sort, filter: data.filter });
}
},
serverPaging: true,
serverFiltering: true,
serverSorting: true,
page: "@ViewBag.ProcessPage",
schema: { data: "Data", total: "Total", model: { id: "Id" } },
pageSize: "@(@Model.MaxCountToShow)"
},
columns: [
{ field: "ErrorDateTime", title: "ProcessDateTime", width: "170px"/*, filterable: { ui: dateFilter }*/ },
{ field: "Name", title: "Processtype", attributes: { value: "type" }, width: "240px;", filterable: { ui: processtypeFilter} },
{ field: "Service", title: "Service", width: "181px;", filterable: { ui: serviceFilter } },
{ field: "Operation", title: "Operation", width: "130px", filterable: { ui: operationFilter } }
]
}).data("kendoGrid");
function createProcessActionString(process) {
var det = '<a class="makeANiceMouse" onclick="processDetailUrl(' + process.Id + ', ' + grid.dataSource.page() + ')">Details</a>';
return det;
}
function processDetailUrl(id, page) {
var windoof = $("#windoofTest").kendoWindow({
width: "1150px",
height: "300px",
content: det,
title: "Process Details",
actions: ["Minimize", "Maximize", "Close"],
close: function (e) {
windoof.data("kendoWindow").content(" ");
}
});
windoof.data("kendoWindow").center().open();
}