VB.net WebApllicationです。
DataGridがあります。そのDataGridには、ボタンの列があります。
DataGridのプロパティのColumnのコレクションで設定できます。
123列はデータを表示、456列にボタンを配置しました。
このとき実行時に
例えば DataGridの6列目のボタンを押されたときに
メッセージボックスを表示をさせたいのです。
YES、NO、キャンセルを選択させて
Yesならば その行のデータを削除させるような感じです。
続く
↓DataGridのボタン押されたときのItemCommandの部分のコードです
Private Sub DataGrid_ItemCommand1(ByVal source As Object,
ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid.ItemCommand
Select Case e.CommandName
Case "1"
〜〜〜処理
Case "2"
〜〜〜処理
Case "3"
〜〜〜処理
Case "4"
〜〜〜処理
Case "5"
〜〜〜処理
Case "6"
MsgBox("削除しますか?", MsgBoxStyle.YesNoCancel)
Case Else
' その他選択は何もされません
End Select
End Sub
このとき MsgBoxのところでエラーになります。
エラー内容は
「アプリケーションが UserInteractive モードで実行されていないときに、モーダル ダイアログまたはフォームを表示することはできません。サービス アプリケーションからの通知を表示するには、ServiceNotification または DefaultDesktopOnly スタイルを指定してください。 」
ということです。
DataGridのボタン押下時に対話モードになっていないときは ダイアログを表示できないらしいです。
ServiceNotification または DefaultDesktopOnly スタイルを指定してMessageBoxを使えばいいのでしょうか?
MessageBoxを記述すると なぜかMessageBoxがコンパイルを通りません。
続く
自分でいろいろ調べたところ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=3007
ジャバスクリプトを使わないとだめらしいのですが
メッセージを出すには
VB.net側の記述ではだめなんでしょうか?
他に調べてみたのは
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13981&forum=7&5
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=5540&rev=&no=0
などです。
長くなりましたがよろしくお願いいたします。
下の例は ボタンクリック時のものですが
まだ試してはいませんが RegisterStartupScriptをつかうとできそうです。
vb側で メッセージボックスを表示させる方法です。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim startupScript As String
Dim strScript As String
strScript = " confirm('どちらか押してください!') "
startupScript = "<script language='JavaScript'> " + strScript + "</script>"
RegisterStartupScript("key1", startupScript)
End Sub
こんな感じです。
警告を出す場合は confirmではなく、
aspx側で記述されるJavaScriptのalertでOKみたいです
以上自己解決です。
ツイート | ![]() |