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みたいです
以上自己解決です。
| ツイート | 
        
         |