У меня есть программа, в которой я использую модальное всплывающее окно, которое позволяет пользователю добавлять новые элементы в базу данных, это работает нормально, но я хотел бы добавить некоторую проверку. Например, когда выдается исключение из-за повторяющейся записи. Я просмотрел несколько примеров того, как использовать пользовательский элемент управления asp.net Validation.
Проблема в том, что как только событие проверки запускается, модальное всплывающее окно исчезает из-за обратной записи.
<asp:Panel ID="panComp" runat="server" Height="180px" Width="400px" cssclass="ModalWindow">
<table width="100%">
<tr>
<td><asp:Label Text="Name" runat="server" /></td> <td><asp:TextBox ID="txtCompName" runat="server" />
<asp:CustomValidator ID="CustomValidator1" OnServerValidate="btnAddComp_Click" runat="server" ErrorMessage="Competency already exists" ControlToValidate="txtCompName" />
<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="CustomValidator1" />
</td>
</tr>
</table>
<br />
<asp:Button ID="btnAddComp" runat="server" Text="Add" />
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
</asp:Panel>
Событие запускается, как и должно быть, и modalPopupExtender OnOkScript не имеет значения
protected void btnAddComp_Click(object source, ServerValidateEventArgs args)
{
if (!String.IsNullOrEmpty(txtCompName.Text))
{
try
{
_ass.AddCompetency(txtCompName.Text);
args.IsValid = true;
}
catch (Exception)
{
args.IsValid = false;
}
}
}