关闭jquery对话框后,Telerik RadGrid $ find返回null

时间:2012-10-03 20:22:36

标签: jquery telerik webforms telerik-grid

我有一个复选框,单击此复选框可以检查或取消选中Telerik RadGrid中存在的所有复选框。

function CheckAll(sender, args) {
        // Set all the checkboxes according to the master
        $(":checkbox").attr("checked", sender.get_checked());

        // If "check all", do some other stuff
        if(sender.get_checked())
        {
            var masterTable = $find("<%=gridSubmittedRequests.ClientID%>").get_masterTableView();
            var rows = masterTable.get_dataItems(); // row collection
            // do some other stuff                
        }
    }
}

这一切都正常,直到我打开(并关闭)一个jquery对话框,之后

$find("<%=gridSubmittedRequests.ClientID%>")

返回null。因此,我永远无法进入重要的// do some other stuff部分。

jQuery对话框关闭功能没有做任何特别的事情:

$("#divProcessModal").dialog(
        {
            height: 300,
            width: 400,
            modal: true,
            resizable: false,
            buttons: { 
                "Process request(s)": function (e) { 
                    // process requests
                },
                "Close without processing": function (e) { 
                    $(this).dialog("close"); 
                    e.preventDefault(); 
                }
            },
            title: "Process Request(s)",
        });

我只需点击Close without processing按钮即可 我尝试过的事情包括在服务器端注册脚本,并将mastertable设置为全局变量,但没有成功。

更新

我弄清楚原因是什么。 jquery对话框的内容是另一个页面

$("#divProcessModal").load("/ProcessRequests.aspx?requestList="+requestList);

这个页面有自己的形式,代码隐藏和所有这些,这似乎导致了问题。我想我可以将ProcessRequests.aspx中的所有功能移到当前的aspx页面,但是如果有人能够解释发生了什么以及为什么我的初始方法不起作用,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

我弄清楚原因是什么。 jquery对话框的内容是另一个页面

$("#divProcessModal").load("/ProcessRequests.aspx?requestList="+requestList); 这个页面有自己的形式,代码隐藏和所有这些,这似乎导致了问题。将ProcessRequests.aspx中的所有功能移动到当前的aspx页面可以解决问题。