.NET TIPS [ASP.NET]DataGridコントロールの削除ボタンで確認メッセージを表示するには?デジタルアドバンテージ2003/12/26 |
![]() |
|
「TIPS:[ASP.NET]DataGridコントロールに削除ボタンを追加するには?」では、ボタン列として削除ボタンを表示する方法について解説した。削除ボタンに行(およびその行に関連したデータソースのデータ)を完全に削除するような処理を実装する場合には、操作ミスによるクリックを防ぐために何らかの対策を講じておくのが一般的である。ここでは、削除ボタンがクリックされたときに本当に削除してよいのかを問い合わせるメッセージ・ボックスを表示する方法について解説する。
削除ボタンがクリックされたときにメッセージ・ボックスを表示するサンプル・プログラムの実行画面は次のようなる。ここで[キャンセル]ボタンをクリックすれば、削除ボタンのクリックは取り消されることになる。
![]() |
削除ボタンがクリックされたときに確認用のメッセージ・ボックスを表示するサンプル・プログラム(confirmdg.aspx) |
Buttonコントロールがクリックされた場合に、このような確認メッセージを表示する方法については、「TIPS:ASP.NETでボタンのクリック時に確認メッセージを表示するには?」ですでに解説している。そこで示した方法は、次のようにButtonコントロールのAttributesプロパティでメッセージ・ボックスを表示するためのJavaScriptを追加するものだった。
Button1.Attributes["onclick"] = "return confirm('本当に移動しますか?');";
今回では、データ連結後に生成されたグリッド上のButtonコントロールに対して同様の処理を行えばよい。データ連結後に行にアクセスする方法については、「TIPS:[ASP.NET]DataGridコントロールですべての行にアクセスするには?」で解説しているように、ItemDataBoundイベントを利用するのが一般的である。
今回の場合におけるItemDataBoundイベントのイベント・ハンドラは次のような内容になる。
void MyGrid_Bound(object sender, DataGridItemEventArgs e) {
if (e.Item.ItemType == ListItemType.Item
|| e.Item.ItemType == ListItemType.AlternatingItem) {
Button button = (Button)e.Item.Cells[3].Controls[0];
button.Attributes["onclick"]
= "return confirm('本当に削除しますか?');";
}
}
このコードは、左から4番目の列に削除ボタンを表示しているボタン列がある場合のものである(Cellsプロパティのインデックス番号は0から始まる)。
確認メッセージ付き削除ボタンを使用したサンプル・プログラム
「TIPS:[ASP.NET]DataGridコントロールに削除ボタンを追加するには?」で示しているサンプル・プログラムに、上記のイベント・ハンドラを追加したコードは次のようになる。
|
|
確認メッセージ付き削除ボタンを使用したC#のサンプル・プログラム(confirmdg.aspx) | |
なお、このプログラムをIEから呼び出してHTMLのソースを表示すれば分かるが、当然ながらすべての行にメッセージ・ボックスを表示するためのスクリプトが含まれることになる。表示するメッセージが長くて転送されるデータ量が気になる場合には、確認メッセージを表示するスクリプトをJavaScriptの関数としてまとめ、それを呼び出すコードをButtonコントロールのAttributesプロパティに追加するようにすればよいだろう。
カテゴリ:Webフォーム 処理対象:DataGridコントロール 使用ライブラリ:DataGridコントロール 使用ライブラリ:ButtonColumn要素 関連TIPS:[ASP.NET]DataGridコントロールに削除ボタンを追加するには? 関連TIPS:ASP.NETでボタンのクリック時に確認メッセージを表示するには? 関連TIPS:[ASP.NET]DataGridコントロールですべての行にアクセスするには? |
![]() |
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
![]() |
|
|
|
![]() |