2012-08-31 2 views
1

텍스트 상자와 requiredfieldvalidator 및 두 개의 버튼이있는 업데이트 패널이 있습니다.RequiredFieldValidator 업데이트 패널에서 이상하게 작동

페이지로드시 레이블과 버튼이 표시됩니다. 버튼을 누르면 텍스트 상자와 유효성 검사기가 다른 버튼과 함께 표시됩니다.

디스플레이의 기본 변경 사항이 정상적으로 작동합니다. 그러나, 유효성 검사기 (동적으로 설정된)는 텍스트 상자가 채워지더라도 오류 메시지를 표시합니다. 텍스트 상자가 채워져 있으면 제출 버튼을 눌러도 실제로 작동하지만 분명히 내 코드에는 이상한 점이 있습니다.

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
     <% 
     If DoNameUpdate = "" then 
     %> 
      <div class="formrow"> 
      <div class="standardlabel">Name: </div> 
      <div class="fakeformfield"><%=TheName%></div> 
      <div class="buttonclass"><asp:ImageButton ID="ImageButton1" ImageUrl="/images/changebutton.gif" alt="Change" CssClass="formsub" runat="server" /></div> 
      </div> 
     <% 
     Else 
     %> 
     <div class="formrow"> 
      <asp:Label AssociatedControlID="client_name" CssClass="standardlabel" runat="server" Text="Name "></asp:Label><span class="mandatory">*</span> 
      <asp:TextBox ID="client_name" runat="server" MaxLength="255" CssClass="textboxborder"></asp:TextBox><BR> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="client_name" Display="Dynamic" CssClass="error" ErrorMessage="Required" InitialValue=""></asp:RequiredFieldValidator> 
      <div class="buttonclass"><asp:ImageButton ID="ImageButton2" ImageUrl="/images/savebutton.gif" alt="Save Changes" CssClass="formsub" runat="server" /></div> 
     </div> 
     <% 
     End if 
     %> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

그리고 숨김

...

Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click 
    Dim myReader As IDataReader = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), IDataReader) 
    If myReader.read then 
     client_name.text = myReader("ClientName") 
    End if 
    myReader.close 
    DoNameUpdate = "val" 
End Sub 
Protected Sub ImageButton2_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton2.Click 
    SqlDataSource2a.update() 
    Dim myReader As IDataReader = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), IDataReader) 
    If myReader.read then 
     TheName = myReader("ClientName") 
    End if 
    myReader.close 
    DoNameUpdate = "" 
End Sub 

어떤 제안이?

답변

0

사용자 정의 이벤트의 updatepanel에서 유효성 검사기의 유효성을 검사합니다.
jquery (또는 다른 이벤트 'click', 'change', 'keypress', 'keyup'등)를 사용하여 'blur'이벤트에 대한 유효성 검사를 호출 할 수 있습니다. 예를 들어 :

function TextBoxValidate() { 
    $('input:[type="text"]:[id*="client_name"]').each(function() { $(this).on('blur', function() { var txtId = this.id; $('span').each(function() { if (this.controltovalidate == txtId) ValidatorValidate(this); }); }); }); 
} 
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(TextBoxValidate); 

은 그냥 자바 스크립트 파일에이 코드 샘플을 추가하고 JQuery와 도서관이에 대한

+0

감사를 포함한다; 나는 그것을 시도하고 내 문제를 해결하는 경우 알려주지. – FrustratedWDotNet

관련 문제