2009-04-14 12 views
1

ボタンのonclickイベントに確認用のポップアップメッセージを追加しようとすると、かなり面倒な問題が発生します。ASP.netボタンのWebコントロールへのJavascript属性

この問題は、新しい行にメッセージを分割しようとすると、テストがポップアップウィンドウ内で折り返されるときに発生します。 \ nが文字列から取り出された場合、コードは正常に動作します。

string confirmationMessage = "text text text text text text text text text text text text text text text text text text \n text text text text "; 

submitButton.Attributes.Add("onclick", "return confirm('" + confirmationMessage + "');"); 

ご協力いただきありがとうございます。

これについて別の質問を投稿するかどうか不明です。新しい問題がありますが、含めることができるテキストの量には限界があるようです。文字列が長すぎると、確認メッセージが表示されません。

+0

あなたの確認はどのくらいですか?私は2500文字を置く、それは正常に動作します。私はあなたの確認テキストに無効な文字がいくつかあると思います。あなたのコードに投稿できますか? – Canavar

+0

はい、それはそれが用語であるテキストの中のシンボルでした! –

答えて

3

私はあなたの問題は、エスケープ文字についてだと思う、これを試してみてください。

string confirmationMessage = "text text text text text text text text text text text text text text text text text text \\n text text text text "; 

// or : 
// string confirmationMessage = @"text text text text text text text text text text text text text text text text text text \n text text text text "; 

submitButton.Attributes.Add("onclick", "return confirm('" + confirmationMessage + "');"); 
+0

この場合、ダブルエスケープは機能しませんでしたが、@記号が付いた2番目の部分は完全に機能しました。 –

+0

これについて別個の質問を投稿するかどうかは不明です。新しい問題がありますが、含めることができるテキストの量には限界があるようです。文字列が長すぎると、確認メッセージが表示されません。 –

+0

あなたの確認はどのくらいですか?私は2500文字を置く、それは正常に動作します。私はあなたの確認テキストに無効な文字がいくつかあると思います。あなたのコードに投稿できますか? – Canavar

1

コンパイラは、おそらくエスケープシーケンスを評価する代わりにプレーンテキストとしてそれを扱っています。文字列の前に「@」を追加し、それが機能するかどうか確認してください:

string confirmationMessage = @"text text text text text text text text text text text text text text text text text text \n text text text text "; 
+0

@記号を使用していただきありがとうございます。 @記号が変数に正確に何をするのか教えてください。 –

+0

@記号がないと、\ nと\ tのようなエスケープシーケンスが解釈されます。 C#文字列で "エスケープとエスケープシーケンス"を使用するには、エスケープ文字(つまり "\\ n")をダブルアップするか、エスケープシーケンスを評価しないようにコンパイラに指示するために先頭に "@"を追加します。 – Rich

関連する問題