OnClientClick срабатывает перед ValidationGroup
Это код, который я использую:
<telerik:RadTextBox ID="txtTitre" runat="server" Skin="Windows7" Width="250">
</telerik:RadTextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*"
ForeColor="Red" ControlToValidate="txtTitre" ValidationGroup="validationincident"></asp:RequiredFieldValidator>
И моя кнопка ASP:
<asp:Button ID="Button1" runat="server" Text="Soumettre ce ticket" OnClick="Button1_Click"
OnClientClick="CloseDialog()" UseSubmitBehavior="false" ValidationGroup="validationincident" />
Моя проблема в том, что OnClientClick запускается до ValidationGroup, так как функция JS, вызываемая в моем OnClientClick, закрывает мое окно.
Таким образом, окно закрывается, и "*" (сообщение об ошибке) отображается только при повторном открытии окна.
Мне нужно, чтобы моя группа Validation была проверена первой! Заранее спасибо за помощь
4 ответа
Решение
Использование Page_ClientValidate()
который проверяет клиентские проверки
<asp:Button ID="Button1" runat="server" Text="Soumettre ce ticket" OnClick="Button1_Click"
OnClientClick="if(Page_ClientValidate()) CloseDialog();" UseSubmitBehavior="false" ValidationGroup="validationincident" />
Использование Page_ClientValidate()
который проверяет клиентские проверки
<asp:Button ID="Button1" runat="server" Text="Button"
OnClientClick="if(Page_ClientValidate()) CloseDialog();" OnClick="Button1_Click"/>
Кроме того, вы также можете указать группу проверки Page_ClientValidate(validationGroup)
Если у вас есть несколько проверок на вашей странице:
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myGroup"
OnClientClick="if(Page_ClientValidate('myGroup')) CloseDialog();" OnClick="Button1_Click" />
Я столкнулся с той же проблемой. Вот как я это решил.
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myGroup" OnClientClick="Page_ClientValidate()){ return CloseDialog();}else { return false;}" OnClick="Button1_Click" />