2009-04-14 3 views
1

У меня есть довольно неприятная проблема при попытке добавить всплывающее сообщение подтверждения в событие onclick кнопки.Атрибут Javascript для элемента управления веб-сайтом ASP.net

Проблема возникает при попытке разбить сообщение на новую строку, чтобы тестовое обертывание во всплывающем окне. Если \ 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

Да, вы были правы, это был символ в тексте, который заканчивал его! – 2009-04-14 14:23:06

ответ

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

двойной побег не работал в этом случае, но второй ption с символом @ работал идеально. – 2009-04-14 13:23:09

+0

не уверен, следует ли размещать отдельный текст для этого. У меня есть новая проблема, но, похоже, существует ограничение на количество текста, который я могу включить. Если строка слишком длинная, сообщение подтверждения не отображается. – 2009-04-14 13:46:15

+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

спасибо, что работал при использовании символа @. Не могли бы вы рассказать мне, что именно символ @ делает с переменной? – 2009-04-14 13:21:52

+0

без символа @, интерпретируются escape-последовательности, такие как \ n и \ t. Для «escape-escape-escape-последовательности» в строке C# вы либо удваиваете escape-символ (т. Е. «\\ n»), либо добавляете «@» в начале, чтобы сообщить компилятору не оценивать ЛЮБЫЕ escape-последовательности. – Rich

Смежные вопросы