0

クリックすると、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だけです。
私が試したことには、サーバー側でスクリプトを登録し、マスターテーブルをグローバル変数として設定することが含まれますが、成功しませんでした。

アップデート

何が原因か分かりました。jqueryダイアログの中身は別ページ

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

このページには独自のフォーム、コード ビハインドなどがありますが、それが問題の原因のようです。すべての機能を現在の aspx ページに移動できると思いProcessRequests.aspxますが、何が起こっているのか、最初のアプローチがうまくいかない理由を誰かが説明できれば幸いです。

4

1 に答える 1

0

何が原因か分かりました。jqueryダイアログの中身は別ページ

$("#divProcessModal").load("/ProcessRequests.aspx?requestList="+requestList); このページには独自のフォーム、コード ビハインドなどがありますが、それが問題の原因のようです。ProcessRequests.aspx のすべての機能を現在の aspx ページに移動すると、問題が解決します。

于 2012-12-29T01:58:35.197 に答える