クリックすると、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
ますが、何が起こっているのか、最初のアプローチがうまくいかない理由を誰かが説明できれば幸いです。