- - PR -
Webフォーム上で表示させるダイアログのメッセージに変数を表示させるには?
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-08 11:07
なちゃさん,todoさん、毎度迅速なレスポンスに感謝です。
【なちゃさんのレス】 >でできるはずですが… >javascriptで文字列にするためには、シングルクォートなどで囲ってやる必要がありますね。 >*.aspx.cs側のクラス内で、 >protected string TestValue; >… >どこかのメソッドなどで、 >TestValue = "ほげほげ"; >*.aspx内のjavascript部分で、 >var strMsg = '<%=TestValue%>'; >もしくは >var strMsg = "<%=TestValue%>"; >※クォートを足しました。 お陰さまで上手くいきました! できない理由は次の二つでした。 1.JavaScript側でクォートで囲ってない(スミマセン私の理解不足です) 2.代入する変数に"\\n"が混ざっていた つまり、 // *.aspx側 var strMsg = '<%=TestValue%>'; // *.cs側 protected string TestValue; とした時、 TestValue = "ほげほげ"; ならOKなのですが TestValue = "ほげほげ\\n"; だと、NGだという事です。(ランタイムエラー TextValueが宣言されていない云々が表示) で、何故"\\n"を含めていたかというと元々は複数行表示するつもりでいたからです。 (色々試してみましたがやはり複数行表示させることは無理なんでしょうか?) 【todoさんのレス】 >mageButton.Attributes["onclick"] = "return alert(this.form.strMsg.value);"; >でした。 >this.form.strMsgが隠しフィールド <input type="hidden" name="StrMsg" value="値">で、 >そのvalueプロパティで値を取得する。 >http://www.microsoft.com/japan/msdn/library/ja/jpisdk/dhtml/references/objects/INPUT.asp?FRAME=true#hidden こちらのやり方でも上手くいきました! しかも複数行OKです。 どうしてこれで可能なのか教えて頂いたMSDNを読んで、自分なりに理解しましたが今後色んな事に 使えそうです。 お二方、どうもありがとうございました。 |