Простой запрос о валидаторах управления в ASP.NET

Я использую следующий валидатор сравнения:

<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="DropDownList1"  ErrorMessage="None can't be selected!" 
                    Operator="NotEqual" ValueToCompare="None"></asp:CompareValidator>

через следующий выпадающий список:

<asp:DropDownList ID="DropDownList1" runat="server" Height="17px" Width="181px">
                    <asp:ListItem>None</asp:ListItem>
                    <asp:ListItem>One</asp:ListItem>
                    <asp:ListItem>Two</asp:ListItem>
                    <asp:ListItem>Three</asp:ListItem>
                </asp:DropDownList>

Вот что происходит: изначально ничего не происходит, и по умолчанию выбрано "Нет". Если я выберу любую другую опцию и затем выберу "Нет", это даст мне ошибку.

Я хочу, чтобы валидатор сразу отображал ошибку при первой загрузке страницы, не дожидаясь, пока пользователь переключится на какую-то другую опцию, и не вернувшись к "Нет", или дождавшись, пока пользователь отправит форму, прежде чем отображение формы снова.

Как мне этого добиться?

2 ответа

Попробуйте что-то вроде этого:

protected void Page_PreRender(object sender, EventArgs e)
{
    Page.Validate();
}

Работает на моей простой тестовой странице.

Прочитав ваш сценарий, я думаю, что вы должны установить Operator="Equal", Если значение равно "None", то произойдет ошибка "None не может быть выбран!".

Другие вопросы по тегам