あなたが直面している問題は、ページをリロードしているために発生するため、登録したスクリプトが失われます。
このような場合に私が使用したアプローチには、jQueryとjQuery UIダイアログの使用が含まれます。
ページに、メッセージ コンテナーとなる div を配置します。最初は非表示で、データベース リクエストの完了後に表示されます。
<div id="modal" title="Alert" style="display: none;">
</div>
ダイアログを表示する JavaScript 関数を記述します。
function showConfirmation(text){
$("#modal").html(text).dialog({
modal: true, // show the dialog as modal
buttons: {
Ok: function() {
location.reload();
}
}, // add a button that refreshes the page when clicked
closeOnEscape: false, // avoid the dialog close when ESC is pressed
dialogClass: 'no-close' // adds a CSS class that hides the default close button
});
}
このdialog
関数は、jQuery UI ライブラリを使用してダイアログを表示する役割を果たします。このbuttons
パラメーターは、押されたときにページを更新するボタンを表示します。
ダイアログ スクリプトを次のRegisterStartupScript
メソッドで登録するだけです。
ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "showConfirmation('Edited Successfully !');", true);
jQuery や jQuery UI を使用していない場合は、head タグに参照を追加するだけです。CDNを使用したくない場合は、ファイルをローカル サイトにダウンロードしてください。
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
このフィドルのクライアント側の動作の実例を見ることができます