- - PR -
クライアントにメッセージを表示する処理を共通化したい
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-05 14:48
こんにちは。いつもお世話になります。
webフォームでクライアントにメッセージを表示する処理を行っています。 その処理自体は以下のように Dim script As New System.Text.StringBuilder script.Append("<script language=""JavaScript"">") script.Append("window.alert('登録しました');") script.Append("</script>") Page.RegisterStartupScript("authenticated", script.ToString) 実行出来ます。 この処理をどのフォームからでも呼出して使えるように共通のクラスとして記述して それを呼出したいのですが上手く行きません。 'クライアントにメッセージ表示 Public Class Msg Sub MsgShow(ByVal key As String, ByVal sendMsg As String) Dim aaa As (呼び出し元クラス名) = New (呼び出し元クラス名) Dim script As New System.Text.StringBuilder script.Append("<script language=""JavaScript"">") script.Append("window.alert(" & sendMsg & ");") script.Append("</script>") aaa.Page.RegisterStartupScript(key, script.ToString) End Sub End Class として、呼び出し側からは Dim msg As Msg = New Msg Call msg.MsgShow("key", "登録しました") としましたが、反応がありません。どこが間違いをご指摘頂ければ大変ありがたいのですが。 よろしくご教授のほどお願いします。 | ||||||||
|
投稿日時: 2004-04-05 15:00
Dim aaa As (呼び出し元クラス名) = New (呼び出し元クラス名)
で作成されるオブジェクトと 呼び出し側のオブジェクトは「クラス」は同じですが「実体」は別々です。 当然、別の実体に設定しているので元の呼び出し側の実体には反映されていません。 なのでPageオブジェクトを引数として渡してみてください | ||||||||
|
投稿日時: 2004-04-05 15:01
「(呼び出し元クラス名)」というのはPageのメンバか何かですかね。
aaaは呼び出し元のオブジェクトと同じ型ですが同じインスタンスではありませんよね? (MsgShowの中でNewしているのだから) なので、そのメンバのaaa.Pageも、現在サーバー側で処理を行っているページとは別物だったりしませんか? ------- かぶっちゃった [ メッセージ編集済み 編集者: 一郎 編集日時 2004-04-05 15:02 ] | ||||||||
|
投稿日時: 2004-04-05 15:09
ついでに、Shared宣言すれば、実体を宣言する必要もありませんよ。
Public Class Msg Public Shared Sub MsgShow( _ ByRef RegistPage As Page, ByVal key As String, ByVal sendMsg As String) 使い方: Msg.MsgShow(me, "key", "登録しました") | ||||||||
|
投稿日時: 2004-04-05 15:10
お二人とも早速のご返答ありがとうございます。おっしゃっている事の意味は分かりました。
>なのでPageオブジェクトを引数として渡してみてください の方法が分かりません。引数として渡す前にどのような記述が必要なのでしょうか? | ||||||||
|
投稿日時: 2004-04-05 15:24
Jittaさん、ありがとうございます。Jittaさんのご指摘の通り出来れば一番ベストだと
思います。 しかし自分の知識不足からSharedを頭に付けただけでは上手くいきませんでした。 もう少し詳しく教えていただけないでしょうか? | ||||||||
|
投稿日時: 2004-04-05 15:57
といいますが、
は無視ですか? で、どのように「上手くいかない」んですか? エラーメッセージは? | ||||||||
|
投稿日時: 2004-04-05 16:03
ぢゃん♪さん、言葉足らずですいません。
Public Class Msg Public Shared Sub MsgShow(ByRef RegistPage As Page, ByVal key As String, ByVal sendMsg As String) Dim script As New System.Text.StringBuilder script.Append("<script language=""JavaScript"">") script.Append("window.alert(" & sendMsg & ");") script.Append("</script>") RegistPage.RegisterStartupScript(key, script.ToString) End Sub End Class で、呼び出し側で Dim msg As Msg = New Msg Call msg.MsgShow(Me, "key", "登録しました") としました。デバッグ中にRegistPage の値を見ると呼出し元フォームのクラス名が きちんと取れているようでしたが、何も起りませんでした。 エラーメッセージも特に出ませんでした。もう少し自分でやってみます。すいませんでした。 |
1|2|3
次のページへ»