すべてサーバー側の処理を使用する多数の jQuery DataTable があります。ページングとソートのセットアップが完了し、すべてが正常に機能しています。これらのテーブルには、行を選択して何らかの処理を実行できるようにするチェックボックスの列が少なくとも 1 つあります。チェックボックスがチェックされている場合、ユーザーがページングまたはソートを希望していることを確認したいと思います。
できると思ったこと(できなかったこと)
"fnPreDrawCallback" : function(table) {
if (CullAddress.AddressIsChecked()) {
var $warningDiv = $('div#pageWarning');
var warningText = "One or more Addresses are selected for Excluding or Tagging. Are you sure you wish to nvaigate away?";
$warningDiv.find("div#pageWarningText").html(warningText);
$warningDiv.dialog({
resizable: false,
height: "auto",
width: "auto",
modal: true,
buttons: {
"Leave Page": function () {
CullAddress.resetWarningText();
$warningDiv.dialog('close');
},
"Stay On Page": function () {
CullAddress.resetWarningText();
$warningDiv.dialog('close');
return false;
}
},
});
}
},
最初はこれは簡単だと思っていましたが、今では少し重くなってきており、正しい方法が何であるかわかりません。fnPreDrawCallback を使用しようとしていますが、最初は jQueryUI ダイアログを作成して表示するつもりでした。コールバックを終了するかどうかをボタンで決定return false;
して、ページにとどまるか、ページ/並べ替えを許可します。
javaScript がそのように機能しないことを理解しました。私は次のことをしなければならないと思いますが、その問題を解決する前に、もっと簡潔な (そして再利用可能な) 方法がないか尋ねたいと思います。
- fnPreDrawCallback で、目的のセット ページ/並べ替えを記述するプロパティを取得します (たとえば、オフセット、pageSize、sSortDir、iSortCol など)。
- 続行するかページにとどまるかをダイアログで決定する
- 前述のプロパティを使用して、データ テーブルの GET を作成し、fnPreDrawCallback をバイパスします。
これを必要以上に難しくしていませんか?確かに私はこれをやりたいと思った最初の人ではありませんが、私の人生では、例を見つけることができるか、検索する必要があるキーワードを理解できません...
何か役に立ちますか?