2011-09-20 3 views
2
 <div> 
      <asp:Label ID="lblClientId" runat="server" CssClass="label" meta:resourcekey="lblClientIdResource" /> 
      <asp:TextBox ID="tbClientId" runat="server" style="width:150px; "/> 
      <asp:Button ID="btnClientId" runat="server" style="width:50px;" meta:resourcekey="btnClientIdResource" /> 
      <asp:CustomValidator ID="rfvClientId" runat="server" ValidationGroup="ClientId" meta:resourcekey="rfvClientIdResource" ControlToValidate="tbClientId" ClientValidationFunction="BtnClickClientId" style="position:absolute;" ValidateEmptyText="True" ><asp:Image ID="Image2" ImageUrl="caution_20.png" runat="server" /></asp:CustomValidator> 
     </div> 



<script type="text/javascript"> 
     function BtnClickClientId(session, args) { 
      ButtonClick(session, args, "<%= tbClientId.ClientID %>", "<%= lblClientId.ClientID %>"); 
     } 
     window.onload = function() { 
      document.getElementById('<%= tbClientId.ClientID%>').focus(); 
     }; 
    </script> 


<asp:ValidationSummary ID="ClientIdValidationSummary" runat="server" BackColor="LightGray" DisplayMode="BulletList" CssClass="validationSummary" EnableClientScript="true" HeaderText='<%$ Resources:GlobalResource, ValidationSummaryResource %>'/> 

따라서이 ButtonClick() 메서드는 작동하며 독립적으로 테스트되었습니다. 문제는 내가 텍스트 상자에 아무 것도 입력하지 않고 단추를 클릭하면 유효성 검사기가 예상대로 작동하고 화면에 나타나는 것입니다. 그런 다음 사라집니다. 또한 페이지 유효성 검사 요약에도 표시되지 않습니다. 어떻게 작동 시키나요?사용자 정의 검사기가 작동하지 않지만 다시 게시 허용

필자는이 텍스트 상자에 필수 필드 유효성 검사기를 설정하려고 시도했지만이 매개 변수는 두 개의 유효성 검사기를 사용하지 않으려 고합니다.

 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="tbClientId" ErrorMessage="RequiredFieldValidator" style="position:absolute;"><asp:Image ID="Image2" ImageUrl="caution_20.png" runat="server" /></asp:RequiredFieldValidator> 
      <asp:CustomValidator ID="rfvClientId" runat="server" ValidationGroup="ClientId" meta:resourcekey="rfvClientIdResource" ControlToValidate="tbClientId" ClientValidationFunction="BtnClickClientId" style="position:absolute;" ValidateEmptyText="True" ></asp:CustomValidator> 

이 코드는 작동하지만 2 개의 유효성 검사기를 사용할 필요가 없습니다.

+0

"ButtonClick"기능은 어떤 기능을합니까? 그 함수에서 "arg.IsValid"를 설정하고 있습니까? – Praveen

+0

아니요, 설정 중이 아닙니다. 레이블의 텍스트를 빨간색으로 바꾼다. – joncodo

답변

4

javascript 함수에서 "arg.IsValid"를 요구 사항에 따라 (즉, 유효성 검사가 성공했다고 생각하면 "true"로, 그렇지 않으면 거짓으로) "true"또는 "false"로 설정해야합니다. 또한 코드 숨김 파일에서 버튼의 클릭 이벤트 핸들러 내에서 "Page.IsValid"속성을 확인하는 것이 좋습니다. 그래서, 자바 스크립트에 이것을 추가하십시오.

arg.IsValid = false; 

이 도움이

protected void button_click(..) 
    { 
     if (Page.IsValid) 
     { 
      // Your code, if any exists 
     } 
    } 

희망

뒤에 코드에서

!

관련 문제