C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: ASP.net msgboxについて


(過去ログ 76 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■44647 / inTopicNo.1)  ASP.net msgboxについて
  
□投稿者/ ごとぅーん (1回)-(2009/12/14(Mon) 21:12:44)

分類:[ASP.NET (VB)] 

お世話になっております。

ASP.netのサーバ側からメッセージ(JavaScriptで言うalert)を表示したいと考えてます。
色々調べていたら、msgboxは使用不可だということがわかりました。
いくつか代替案を見つけ実装してみたのですが、どれもうまくいきませんでした。
・Response.Write(script); など・・・。

条件として以下があります。
1、メッセージはテーブルから取得し表示する。
2、処理の途中でメッセージを出力する。

このような場合、どのように対処したらよろしいでしょうか。
ご教授願います。

VisualStudio2005 asp.net2.0
引用返信 編集キー/
■44656 / inTopicNo.2)  Re[1]: ASP.net msgboxについて
□投稿者/ gtk2k (139回)-(2009/12/15(Tue) 02:48:11)
処理の途中でってどういうこと?
重い処理をサーバー側で行っている最中ということ?
となるとAJAX使うぐらいしかないと思うが?
引用返信 編集キー/
■44658 / inTopicNo.3)  Re[2]: ASP.net msgboxについて
□投稿者/ ごとぅーん (3回)-(2009/12/15(Tue) 09:21:01)
返信ありがとうございます。

処理の途中と言うのは、イベント発生直後ではないという意味です。
わかりにくくてスイマセン

AJAXですか・・・、調べてみます!
引用返信 編集キー/
■44660 / inTopicNo.4)  Re[1]: ASP.net msgboxについて
□投稿者/ 魔界の仮面弁士 (1420回)-(2009/12/15(Tue) 09:32:59)
No44647 (ごとぅーん さん) に返信
> ASP.netのサーバ側からメッセージ(JavaScriptで言うalert)を表示したいと考えてます。
> 色々調べていたら、msgboxは使用不可だということがわかりました。

とりあえず、
http://msdn.microsoft.com/ja-jp/magazine/cc164247.aspx
とか。

あるいは、サーバーから
<script language="VBScript">Call MsgBox("メッセージ", vbInformation, "タイトル")</script>
を送出するという手もありますが、ブラウザが IE に限定されてしまいますね。
引用返信 編集キー/
■44662 / inTopicNo.5)  Re[2]: ASP.net msgboxについて
□投稿者/ ごとぅーん (4回)-(2009/12/15(Tue) 11:02:41)
No44660 ( さん) に返信
> ■No44647 (ごとぅーん さん) に返信
>>ASP.netのサーバ側からメッセージ(JavaScriptで言うalert)を表示したいと考えてます。
>>色々調べていたら、msgboxは使用不可だということがわかりました。
>

魔界の仮面弁士様
いつもお世話になっております。返信ありがとうございます。

> とりあえず、
> http://msdn.microsoft.com/ja-jp/magazine/cc164247.aspx
> とか。

こちらを見させて頂きました。
AJAXについては全くの無知ですので、もう1つの案VBScriptを使用しようと思います。(IE限定で問題はありません)

> あるいは、サーバーから
> <script language="VBScript">Call MsgBox("メッセージ", vbInformation, "タイトル")</script>
> を送出するという手もありますが、ブラウザが IE に限定されてしまいますね。

しかし、VBScriptについても無知なもので、いまいちイメージが掴めません。
JavaScriptを.aspxに書き込み、.aspx.vbにて埋め込み使用する方法は存じてます。
上記を見ると、.aspx.vbに直接書き込むように見られましたので、調べてみたのですが、
似合った情報が見つかりません。

何かヒントを頂けないでしょか。
ご教授願います。
引用返信 編集キー/
■44664 / inTopicNo.6)  Re[3]: ASP.net msgboxについて
□投稿者/ もりお (140回)-(2009/12/15(Tue) 12:02:27)
No44662 (ごとぅーん さん) に返信
ClientScript.RegisterStartupScript で Script を登録してはいかがでしょうか。

ClientScript.RegisterStartupScript(Me.GetType(), "alert", GetAlertScript(), False)

Function GetAlertScript() As String
    Return String.Format( _
        "<script language=""VBScript"">" & _
        "Call MsgBox(""{0}"", vbInformation, ""タイトル"")" & _
        "</script>", GetMessageFromDb())
End Function

Function GetMessageFromDb() As String
    Return "わっほーい"
End Function

JavaScript の alert を使うという手もあります。

ClientScript.RegisterStartupScript(Me.GetType(), "alert", GetAlertScript(), True)

Function GetAlertScript() As String
    Return String.Format("alert('{0}')", GetMessageFromDb())
End Function

Function GetMessageFromDb() As String
    Return "わっほーい"
End Function

■No44660 (魔界の仮面弁士 さん) に返信
> <script language="VBScript">Call MsgBox("メッセージ", vbInformation, "タイトル")</script>
こんな手段があったのですか。
文字列をシングルクォートで囲ってしまって悩みまくってしまいました。
コメント・・・
Call MsgBox('わっほーい', vbInformation, 'タイトル')

引用返信 編集キー/
■44665 / inTopicNo.7)  Re[4]: ASP.net msgboxについて
□投稿者/ 魔界の仮面弁士 (1422回)-(2009/12/15(Tue) 13:03:09)
No44664 (もりお さん) に返信
>     Return String.Format( _
>         "<script language=""VBScript"">" & _
>         "Call MsgBox(""{0}"", vbInformation, ""タイトル"")" & _
>         "</script>", GetMessageFromDb())

文字列中に「改行」や「"」が現れた場合に、
 Call MsgBox("たとえば、" & vbNewLine & "改行や「""」など", vbInformation, "タイトル")
というスクリプトが生成されるようにしなければならないので、
  Function Quote(ByVal Text As String) As String
      Text = Replace(Text, """", """""").Replace(vbCrLf, vbLf).Replace(vbCr, vbLf)
      Return """" & Text.Replace(vbLf, """ & vbNewLine & """) & """"
  End Function
のような物を用意しておいて、
    String.Format("Call MsgBox({0}, vbInformation, {1})", _
                  Quote(GetMessageFromDb()), _
                  Quote("タイトル"))
などとした方が良いかな。

引用返信 編集キー/
■44669 / inTopicNo.8)  Re[5]: ASP.net msgboxについて
□投稿者/ ごとぅーん (5回)-(2009/12/15(Tue) 15:03:36)
No44664 (もりお さん) に返信

もりお様 返信ありがとうございます。

とても参考になりました。ありがとうございます。
まだまだ知らないことがたくさんあるので日々精進していきたいと思います。


返信してくださった方々、ありがとうございました。
今後ともよろしくお願い致します。
解決済み
引用返信 編集キー/
■44670 / inTopicNo.9)  Re[5]: ASP.net msgboxについて
□投稿者/ もりお (141回)-(2009/12/15(Tue) 15:03:53)
2009/12/15(Tue) 15:04:10 編集(投稿者)
No44665 (魔界の仮面弁士 さん) に返信
>   Function Quote(ByVal Text As String) As String
>       Text = Replace(Text, """", """""").Replace(vbCrLf, vbLf).Replace(vbCr, vbLf)
>       Return """" & Text.Replace(vbLf, """ & vbNewLine & """) & """"
>   End Function

う、エスケープ処理を完全に失念していました。
クォーティングとエスケープ処理をメソッドとして切り出してやるわけですね。
なるほど、このようにやると良いのですか。
勉強になりました。ありがとうございます。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -