- PR -

Webフォーム上で表示させるダイアログのメッセージに変数を表示させるには?

投稿者投稿内容
alf
常連さん
会議室デビュー日: 2005/11/15
投稿数: 22
お住まい・勤務地: 岐阜県・愛知県
投稿日時: 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を読んで、自分なりに理解しましたが今後色んな事に
 使えそうです。

 お二方、どうもありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)