#vb.net #validation #radcombobox
Вопрос:
В настоящее время я работаю над проектом в vb.net и у меня возникли проблемы с тем, чтобы мой пользовательский валидатор работал на radcombobox. Когда я запускаю свое приложение и проверяю проверку, оно не вызывается, что приводит к сбою моего приложения. Я не рассматриваю проверку на стороне клиента, только на стороне сервера. Ниже приведен код, который я использовал.
Код Aspx
lt;tdgt; lt;telerik:RadComboBox ID="radcomboboxListTimeZone" runat="server" BorderColor="#bbe0ef" BorderWidth="2px" Width="400px" MaxHeight="200px" DataSourceID="ObjectDataSourceListTimeZones" DataTextField="DisplayName" DataValueField="StandardName" SelectedValue='lt;%# Bind("TimeZoneStandardName")%gt;'gt; lt;/telerik:RadComboBoxgt; lt;asp:CustomValidator ID="CustomValidatorTimeZone" runat="server" ErrorMessage="Please select a valid Time Zone Standard Name" ControlToValidate="radcomboboxListTimeZone" OnServerValidate="CustomValidatorListTimeZone_ServerValidate"gt;•lt;/asp:CustomValidatorgt; lt;/tdgt;
Код на стороне сервера
Protected Sub CustomValidatorListTimeZone_ServerValidate(ByVal source As Object, ByVal args As ServerValidateEventArgs) Dim radcomboboxListTimeZone As RadComboBox = CType(FormViewTimeZones.FindControl("radcomboboxListTimeZone"), RadComboBox) Dim selectedValue As String = radcomboboxListTimeZone.SelectedValue If selectedValue = "Coordinated Universal Time" Then args.IsValid = False Else args.IsValid = True End If End Sub
Любая помощь была бы очень признательна.
Ответ №1:
Мне удалось заставить работать пользовательскую проверку на стороне сервера. Для этого я создал группу проверки
lt;asp:ValidationSummary ID="ValidationSummaryEditItem" runat="server" ValidationGroup="TimeZone" /gt;
и поставил
CausesValidation="true"
на кнопке редактирования и добавил
ValidationGroup="TimeZone"
как к кнопке редактирования, так и к пользовательскому валидатору