Термин недопустимого выражения' <'
<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()+")");
}
Есть пара вещей, которые происходят с этим... Вы не можете включать параметры в событие на стороне сервера, и вы не можете использовать <%= в управлении сервером.
Вы хотите запустить событие на 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);
}
Я не думаю, что вы можете включать параметры в событие сервера. Вам нужно будет обратиться к этим элементам управления из Code-Behind.
Да. Элементы управления сервера не могут содержать <%
(оценка этих тегов происходит после того, как элементы управления сервера - таким образом, эти теги считаются частью элементов управления сервера, и при разборе происходит сбой)
Вы можете захотеть добавить атрибут ontextchchange в свой код позади. Также можно использовать JavaScript
.