asp.netのダイアログ表示 への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 るきお  (社会人)
投稿日時
2011/3/31 13:22:02
Webアプリケーションの基本的な考え方にマッチしていません。
簡単に言うと、ボタンなどは画面に張り付けて張り付けて使うものです。
そうするとあとは.NETがうまいようにいろいろ設定・調整してくれてプログラマはあまり仕組みを考えなくても使えるようになります。
今回むね6さんは、画面に張り付けて使っていないので、上述の「うまいようにいろいろ設定・調整」を自分でする必要があります。
作成されたButtonExクラスはクライアント側にスクリプトを出力して、
そのスクリプトがダイアログを表示する機能があるようになっています。
しかし、むね6さんのプログラムでは処理がクライアントに帰る前に完結しているので、
スクリプトは出力もされなければ、実行もされません。
いろいろ仕組みはあるんですが、とりあえず、ボタンであれば画面に貼り付けて使いましょう。
ボタンとは関係なくダイアログを出すのが目的なのであれば、
ClientScript.RegisterStartupScriptメソッドを使ってスクリプトを実行させましょう。
簡単に言うと、ボタンなどは画面に張り付けて張り付けて使うものです。
そうするとあとは.NETがうまいようにいろいろ設定・調整してくれてプログラマはあまり仕組みを考えなくても使えるようになります。
今回むね6さんは、画面に張り付けて使っていないので、上述の「うまいようにいろいろ設定・調整」を自分でする必要があります。
作成されたButtonExクラスはクライアント側にスクリプトを出力して、
そのスクリプトがダイアログを表示する機能があるようになっています。
しかし、むね6さんのプログラムでは処理がクライアントに帰る前に完結しているので、
スクリプトは出力もされなければ、実行もされません。
いろいろ仕組みはあるんですが、とりあえず、ボタンであれば画面に貼り付けて使いましょう。
ボタンとは関係なくダイアログを出すのが目的なのであれば、
ClientScript.RegisterStartupScriptメソッドを使ってスクリプトを実行させましょう。
投稿者 むね6  (社会人)
投稿日時
2011/3/31 12:43:03
asp.net (VB)にて、Webアプリを開発しています。
メッセージダイアログを表示するクラスを作成しましたが表示されません。
作成したクラスの概要を説明すると。
①まず、Buttonクラスの派生クラスを作成
②このクラスのインスタンス生成時、
OnClientClickプロパティに、ダイアログを表示するメッセージをセット
③このクラスに、『 OnClickメソッドを呼び出す 』 メソッドを作成
④このクラスのメソッドを呼ぶことで、ダイアログが表示されることを期待していますが、
表示されません。
以下はプログラムコードです。
このプログラムでは、Button1をクリックした際に、
ダイアログを表示するメソッドを呼び出しています。
'**************************************
'*ダイアログを表示するクラス
'**************************************
Public Class ButtonEx
Inherits Button
Public Sub New()
Me.OnClientClick = "return confirm('100件以上存在します。続行しますか?')"
End Sub
Public Sub DoClick()
Me.OnClick(New EventArgs)
End Sub
End Class
'**************************************
'*Webフォーム
'**************************************
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim dialog As ButtonEx
dialog = New ButtonEx
dialog.DoClick()
End Sub
End Class
最終的には、ダイアログに表示するメッセージなどなどの必要なパラメータを、
引数、プロパティにするようにチューニングし、仕上げるつもりですが。
まずは、第一歩として、試験的に上記のような簡単なクラスを作成しましたが動きません。
メッセージダイアログを表示するクラスを作成しましたが表示されません。
作成したクラスの概要を説明すると。
①まず、Buttonクラスの派生クラスを作成
②このクラスのインスタンス生成時、
OnClientClickプロパティに、ダイアログを表示するメッセージをセット
③このクラスに、『 OnClickメソッドを呼び出す 』 メソッドを作成
④このクラスのメソッドを呼ぶことで、ダイアログが表示されることを期待していますが、
表示されません。
以下はプログラムコードです。
このプログラムでは、Button1をクリックした際に、
ダイアログを表示するメソッドを呼び出しています。
'**************************************
'*ダイアログを表示するクラス
'**************************************
Public Class ButtonEx
Inherits Button
Public Sub New()
Me.OnClientClick = "return confirm('100件以上存在します。続行しますか?')"
End Sub
Public Sub DoClick()
Me.OnClick(New EventArgs)
End Sub
End Class
'**************************************
'*Webフォーム
'**************************************
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim dialog As ButtonEx
dialog = New ButtonEx
dialog.DoClick()
End Sub
End Class
最終的には、ダイアログに表示するメッセージなどなどの必要なパラメータを、
引数、プロパティにするようにチューニングし、仕上げるつもりですが。
まずは、第一歩として、試験的に上記のような簡単なクラスを作成しましたが動きません。
回答ありがとうございました。
なるほどですね。
ちなみに、私の目的は、ダイアログを出すことです。
なので、早速、ClientScript.RegisterStartupScriptメソッドについて調査し、
作成してみたところ、うまくダイアログを出力できました。
ありがとうございました。
今後ともよろしくお願いいたします。