Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道UI网格过滤器不';以前打开弹出窗口时无法工作_Javascript_Kendo Ui_Popup_Kendo Grid - Fatal编程技术网

Javascript 剑道UI网格过滤器不';以前打开弹出窗口时无法工作

Javascript 剑道UI网格过滤器不';以前打开弹出窗口时无法工作,javascript,kendo-ui,popup,kendo-grid,Javascript,Kendo Ui,Popup,Kendo Grid,我有一个剑道UI网格,其中一些列可以被过滤。对于该列中的每一行,可以打开一个弹出窗口以查看特定条目的一些详细信息 我可以打开弹出窗口没有任何问题。但是:在关闭它并尝试过滤任何列之后,我得到以下错误:JavaScript运行时错误:无法获取未定义或空引用的属性“toggle” 如果我在打开弹出窗口之前过滤一列,它就像一个符咒。 如果我过滤一列,然后打开弹出窗口,已经过滤的列可以再次过滤,但其他列不能 我不知道为什么在打开和关闭弹出窗口后不能过滤列 任何想法或提示都会非常有用。谢谢 HTML: 打开

我有一个剑道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();
}