2010-06-01 4 views
1

사용자가 데이터베이스에 새 항목을 추가 할 수있는 모달 팝업을 사용하는 프로그램이 있는데이 기능은 정상적으로 작동하지만 유효성을 추가하고 싶습니다. 예를 들어 중복 된 항목으로 인해 예외가 발생하는 경우 asp.net 사용자 지정 유효성 검사 컨트롤을 사용하는 방법에 대한 몇 가지 예제를 살펴 보았습니다.아약스 모달 팝업 익스텐더에서 서버 측 유효성 확인

유효성 검사 이벤트가 발생하자마자 포스트 백으로 인해 모달 팝업이 사라지는 문제가 있습니다.

<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; 
     } 
    } 

} 

답변

2

을 가지고하지 않는 한. 할 수있는 일은 페이지가 유효한지 확인하는 것입니다. 오류가 있으면 서버 또는 클라이언트에서 모달 익스텐더 Show 메서드를 호출하여 패널을 표시하여 오류와 함께 다시 표시 할 수 있습니다.

그렇지 않으면 모달 팝업이 포스트 백간에 열린 상태를 유지하지 않습니다.

HTH.

+0

나는 그것이 유일한 옵션이라고 생각합니다. 감사합니다;) – fluf

+0

그 트릭 감사 : D 조 – fluf

관련 문제