検索機能を jquery ダイアログに移動しています。
もともと持っていた
次の検索ボックスを使用して、姓で検索します
検索方法: 検索
次の JavaScript を追加しました。
var dlgSearch = $("#SearchDialog").dialog({
autoOpen: false,
zIndex: 9999,
bgiframe: true,
resizable: false,
width: 450,
modal: true,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
'Search':
function() {
<%= Page.ClientScript.GetPostBackEventReference(btnSearch, String.Empty) %>;
},
Cancel: function() {
$(this).dialog('close');
}
}
});
dlgSearch.parent().appendTo($("form:first"));
これはうまくいきます。ただし、2 つの検索ボタンをブラウザーにレンダリングするようになりました。タグでレンダリングされた元のボタンと、jquery ダイアログのインスタンス化でレンダリングされたボタンです。サーバー側タグでレンダリングされたものを取り除き、jquery のみを使用したいと思います。
問題は、タグを削除すると、コントロール btnSearch が存在しなくなるため、GetPostBackEventReference 呼び出しでコンパイル エラーが発生することです。
CSS を使用して btnSearch のスタイルを設定し、それを display:none にすることはいつでもできますが、それは問題に対処するための汚い方法のように思えます。
コントロールイベントに結び付けられずにサーバー側のメソッドを呼び出す方法はありませんか? 私は ajax コールバック アプローチを望んでいないことに注意してください。実際にはポストバックが必要です。