Ошибка в разрешении серверного тега

Термин недопустимого выражения' <'

<asp:TextBox ID="txtPassword" runat="server" 
            Width="180px" TextMode="Password" 
            OnTextChanged="CheckPasswordStrength(<%= txtPassword.ClientID.ToString() %>,<%= lblMessage.ClientID.ToString() %>)"/>

Если я пишу этот код как следующее затем, ошибка происходит, необработанное исключение произошло. Теги сервера не могут содержать <% %> конструкции

  <asp:TextBox ID="txtPassword" runat="server" 
                Width="180px" TextMode="Password" 
                OnTextChanged="CheckPasswordStrength("<%= txtPassword.ClientID.ToString() %>","<%= lblMessage.ClientID.ToString() %>")"/>

Когда я использую этот код в .cs файле затем, каждая вещь хорошо работает.

 protected void Page_Load(object sender, EventArgs e)
    {
        txtPassword.Attributes.Add("onKeyUp", "PasswordCheck("+txtPassword.ClientID.ToString()+")");
        txtPrimaryEmail.Attributes.Add("onKeyUp", "EmailChecker("+txtPrimaryEmail.ClientID.ToString()+")");
    }
5
задан Shantanu Gupta 22 December 2009 в 17:16
поделиться

3 ответа

Есть пара вещей, которые происходят с этим... Вы не можете включать параметры в событие на стороне сервера, и вы не можете использовать <%= в управлении сервером.

Вы хотите запустить событие на JavaScript?

Если вы хотите запустить событие на JavaScript, сделайте одну из трех вещей:

1) Используйте выражение привязки к базе данных (<%# Control). ClientID %>) - Это требует, чтобы где-то в пределах жизненного цикла на вашем элементе управления вызывалась функция DataBind().

2) Присвойте событие в обратном коде, используя Control.Attributes.Add("javascriptevent", "DoStuff(x, y)")

3) Вы можете использовать <%= %> в вашем клиентском скрипте, например,

function MyJavaScriptEventHandler()
{
   var textbox = document.getElementById('<%= MyASPTextBox.ClientID %>');
   alert(textbox.value);
}
4
ответ дан 15 December 2019 в 01:03
поделиться

Я не думаю, что вы можете включать параметры в событие сервера. Вам нужно будет обратиться к этим элементам управления из Code-Behind.

0
ответ дан 15 December 2019 в 01:03
поделиться

Да. Элементы управления сервера не могут содержать <% (оценка этих тегов происходит после того, как элементы управления сервера - таким образом, эти теги считаются частью элементов управления сервера, и при разборе происходит сбой)

Вы можете захотеть добавить атрибут ontextchchange в свой код позади. Также можно использовать JavaScript

.
0
ответ дан 15 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: