--------(--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2014-04-02(Wed)

ASP.NETのDataPagerでページ移動時にメッセージを表示

ASP.NETのListViewコントロールを使用し、行単位ではなくページ単位でデータの更新を行う処理をしているのですが、DataPegerでページ移動を行うときに確認メッセージを表示してからデータの更新を行いたいと思いました。

とりあえず今回のケースではページ移動ボタン文字が<<,<,>,>>となっているという前提ですが、ちょっと作りが強引すぎたかもしれません・・・

aspxのwindow.onloadやJQueryの$(document).readyでページャーの移動ボタンやページ番号リンククリック時に呼び出すJavaScriptを登録するSetPagerFunctionを実行するだけです。

■aspxファイル
$(document).ready(function () {
SetPagerFunction('changePager');
});



/*
*ページャー変更時の確認メッセージ表示(ページャー変更時にこの関数が呼び出されます)
*/
function changePager() {
if (document.getElementById('<%=hidPageDirty.ClientID %>').value == 'true') {
if (confirm('変更内容を保存しますか?')) {
return true;
} else {
return false;
}
} else {
return true;
}
}


■共通で使用するJavaScript関数
/*
*ページャーの移動ボタンに確認メッセージを設定
*/
function SetPagerFunction(pScript) {
//移動ボタン(<<, <, >, >>)
var strText1 = ['<<', '<', '>', '>>'];
var ctl1 = document.getElementsByTagName("input");
for (var i = 0; i < ctl1.length; i++) {
if ($.inArray(ctl1[i].value, strText1) > -1) {
if (ctl1[i].onclick) {
var strJs = ctl1[i].onclick.toString();
var i1 = strJs.indexOf('__doPostBack');
var i2 = strJs.indexOf(';', i1);
strJs = 'if(' + pScript + '()){' + strJs.substr(i1, i2);
ctl1[i].onclick = new Function(strJs);
}
}
}
//ページ番号リンク(1~1000までを想定)
var ctl2 = document.getElementsByTagName("a");
for (var i = 0; i < ctl2.length; i++) {
if (parseInt(ctl2[i].innerText) > 0 && parseInt(ctl2[i].innerText) < 1000) {
var strJs = ctl2[i].getAttribute('href');
if (strJs.indexOf('javascript:') > -1) {
strJs = 'javascript:' + 'if(' + pScript + '()){' + strJs.substr(11) + ';}';
ctl2[i].setAttribute('href', strJs);
}
}
}
}

コメントの投稿

管理者にだけ表示を許可する

コメント



 
プロフィール
Author:OMEGAT
FC2ブログへようこそ!
カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
FC2カウンター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
忍者AdMax
検索フォーム
カテゴリ
ブロとも申請フォーム

この人とブロともになる

amazonお奨め商品



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。