проверка на стороне сервера на модальном расширителе всплывающих окон ajax - PullRequest
1 голос
/ 01 июня 2010

У меня есть программа, в которой я использую модальное всплывающее окно, которое позволяет пользователю добавлять новые элементы в базу данных, это работает нормально, но я хотел бы добавить некоторую проверку. Например, когда выдается исключение из-за повторяющейся записи. Я просмотрел несколько примеров того, как использовать пользовательский элемент управления 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;
        }
    }

}

1 Ответ

2 голосов
/ 01 июня 2010

Это сложно, потому что вам нужен обратный вызов для пользовательского валидатора. Что вы можете сделать, это проверить, является ли страница действительной; если присутствует ошибка, вы можете отобразить панель, вызвав метод Show модального расширителя на сервере или на клиенте, чтобы повторно показать ее с ошибкой.

В противном случае, модальное всплывающее окно не сохраняет свое открытое состояние через обратные передачи.

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...