По теме, аналогичной указанной в статье, но с более конкретным примечанием. Как именно вы обрабатываете элементы, которые находятся в состоянии просмотра (чтобы они включались в отправку), но также могут быть изменены с помощью AJAX. Например, предположим, что у нас есть раскрывающийся список, который заполняется с помощью вызова веб-службы AJAX (а не панели обновлений). Как я могу получить страницу для проверки после изменения элементов раскрывающегося списка?





почему бы не проверить onChange даже в раскрывающемся списке?
просто добавьте диспетчер сценариев и добавьте это свойство в onchange в событии Page_Load
' Creating the javascript function to validate
Dim js As String
js = "function validateDDL1(ddl) { alert(ddl.value); }"
' Adding onChange javascript method
DropDownList1.Attributes.Add("onchange", "validateDDL1(this);")
' Registering the javascript
ScriptManager.RegisterClientScriptBlock(Me, GetType(String), "validateDDL1(ddl)", js, True)
Вы можете вызвать функцию Page_Validate () из своего кода javascript, она запустит валидаторы asp.net на странице, в основном это похоже на Page.Validate () в коде сервера.
Вы не проверяете раскрывающийся список, не так ли? Вы подтверждаете значение, выбранное пользователем. Это почти тот же совет, что и в другом сообщении, поскольку javascript или другие инструменты могут изменять html или создавать свои собственные POST, вы всегда должен проверяете на стороне сервера. Предположим, что все клиентские запросы могут быть изменены, и предположим, что проверка на стороне клиента не проводилась.
Если вы используете модель веб-форм ....
Если вы просто хотите проверить, что значение было выбрано в раскрывающемся списке myAjaxDropDown, используйте
<asp:RequiredFieldValidator id = "dropdownRequiredFieldValidator"
ControlToValidate = "myAjaxDropDown"
Display = "Static"
InitialValue = "" runat=server>
*
</asp:RequiredFieldValidator>
Вы также можете посмотреть asp: CustomValidator - для проверки на стороне сервера:
<asp:CustomValidator ID = "myCustomValidator" runat = "server"
onservervalidate = "myCustomValidator_ServerValidate"
ErrorMessage = "Bad Value" />
Оба подключаются к платформе проверки asp.net. например когда вы нажимаете кнопку под названием SumbitButton
protected void myCustomValidator_ServerValidate(object source, ServerValidateEventArgs e)
{
// determine validity for this custom validator
e.IsValid = DropdownValueInRange(myAjaxDropDown.SelectedItem.Value);
}
protected void SubmitButton_Click( object source, EventArgs e )
{
Validate();
if ( !IsValid )
return;
// validators pass. Continue processing.
}
Некоторые ссылки для дальнейшего чтения: