2013-11-22 3 views
2

시간을내어 읽어 주셔서 감사합니다. 코드에서 페이지를로드 할 때 ASP.NET 페이지의 기본 단추를 설정하는 문제가 있지만 이제는 더 이상 작동하지 않는 하나의 컨트롤을 대상으로하는 여러 유효성 검사 그룹이 있습니다. 이제, 해당 컨트롤 (텍스트 상자)에서 Enter 키를 누르면 두 그룹의 유효성 검사에서 유효성 검사 요약 텍스트를 제외한 유효성 검사가 트리거됩니다.기본 단추가 여러 유효성 검사 그룹과 작동하지 않습니다.

여기 내 examplefied 코드 :

ASPX

<table> 
    <tr> 
     <td><asp:Textbox runat="server" ID="validateMe"></asp:TextBox></td> 
     <td><asp:RequiredFieldValidator ID="firstValidator" runat="server" ErrorMessage="First check not valid" Text="*" ControlToValidate="validateMe" ValidationGroup="firstGroup"></asp:RequiredFieldValidator> 
     <td><asp:RequiredFieldValidator ID="secondValidator" runat="server" ErrorMessage="Second check not valid" Text="*" ControlToValidate="validateMe" ValidationGroup="secondGroup"></asp:RequiredFieldValidator> 
    </tr> 
    <tr> 
    <td><asp:Button runat="server" ID="firstButton" Text="V1" ValidationGroup="firstGroup"/></td> 
    <td><asp:Button runat="server" ID="secondButton" Text="V2" ValidationGroup="secondGroup"/></td> 
    </tr> 
<table> 

<asp:ValidationSummary ID="firstSummary" runat="server" ValidationGroup="firstGroup"/> 
<asp:ValidationSummary ID="secondSummary" runat="server" ValidationGroup="secondGroup"/> 

C#

내가 이것을 사용하고있는 동안 텍스트 상자의 내부 그것으로 아무것도 입력하지 않고 '입력'히트 경우

protected void Page_Load(object sender, EventArgs e) 
{ 
    this.Form.DefaultButton = firstButton.UniqueID; 
} 
, 유효성 검사 요약은 나타나지 않지만 텍스트 상자 옆에 두 개의 별표가 표시됩니다 (각 그룹에 하나씩). 사용자가 'Enter'키를 누르면 DefaultButton (여기서는 'firstButton')에 할당되어야하는 첫 번째 그룹 만 사용하여 전체 유효성 검사가 수행됩니다. 이 기능을 구현하고 사용자가 'firstButton'을 대신 클릭했을 때 클라이언트 측 유효성 검사를 시작할 수있는 방법이 있습니까?

또한 asp : Panel 내부의 유효성 검사 요약과 함께 전체 테이블을 래핑 해보고 DefaultButton을 설정했지만 동일한 결과가 나타납니다. 올바른 방향으로 도움이나 조언을 주시면 감사하겠습니다!

+0

여기 예제를 살펴보십시오. http://www.w3schools.com/aspnet/control_validationsummary.asp 좋은 예제이며 잘 설명 할 수 있습니다. – BAS

+0

제 사과 DMA가 있지만 아직이 문제에 도움이 될 수있는 w3 사이트에서 아무 것도 발견하지 못했습니다. 유효성 검사 요약 및 기본 단추 페이지에는 이러한 컨트롤에 대한 간단한 설명이 포함되어 있으며 아직 시도하지 않은 솔루션이나 단일 컨트롤에 여러 유효성 검사가있을 때 기본 단추가 작동하지 않는 이유에 대한 설명이 제공되지 않습니다. – user2912928

답변

1

설정

EnableClientScript의 RequiredFieldValidator 컨트롤에

= "false"를. 도움이 될거야.

<asp:Panel runat="server" DefaultButton="secondButton"> 
    <table> 
     <tr> 
      <td> 
       <asp:TextBox runat="server" ID="validateMe"></asp:TextBox></td> 
      <td> 
       <asp:RequiredFieldValidator ID="firstValidator" runat="server" ErrorMessage="First check not valid" Text="*" ControlToValidate="validateMe" EnableClientScript="false" ValidationGroup="firstGroup"></asp:RequiredFieldValidator> 
      </td> 
      <td> 
       <asp:RequiredFieldValidator ID="secondValidator" runat="server" ErrorMessage="Second check not valid" Text="*" ControlToValidate="validateMe" EnableClientScript="false" ValidationGroup="secondGroup"></asp:RequiredFieldValidator> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <asp:Button runat="server" ID="firstButton" Text="V1" ValidationGroup="firstGroup" /></td> 
      <td> 
       <asp:Button runat="server" ID="secondButton" Text="V2" ValidationGroup="secondGroup" /></td> 
     </tr> 
    </table> 

    <asp:ValidationSummary ID="firstSummary" runat="server" ValidationGroup="firstGroup" /> 
    <asp:ValidationSummary ID="secondSummary" runat="server" ValidationGroup="secondGroup" /> 
</asp:Panel> 
+0

고마워요! 그게 도움이 된 것 같습니다. 또한 모든 유효성 검사기가 RequiredFieldValidators를 사용하지 않고 CustomValidators 인 경우 의도 한대로 작동한다는 것을 알았지 만 (아마도 최선의 해결 방법은 아니지만) EnableClientScript = "false"메서드를 사용하여 유효성 검사 필드에 텍스트가 표시되지 않았 음을 유의할 필요가 있습니다.하지만 이는 내 마지막에 수행 한 것일 수 있습니다. 최소한 이것은 다시 작동하는 기본 단추를 얻습니다. 고마워요! – user2912928