2009-05-23 16 views
0

最近興味深い問題が発生しました。検索マスタページのテキストボックスで検証エラーが発生します

<div id="searchBox"> 
     <table border="0" cellpadding="0" cellspacing="0" width="100%"> 
         <tr><td> <asp:TextBox ID="q" MaxLength="100" AutoPostBack="false" runat="server" onclick="ctl00$q.value=''" CausesValidation="False" Text="Google Custom Search" /></td> 
          <td align="right"> 
           <asp:ImageButton ID="_btnSearch" runat="server" AlternateText="Search" validationgroup="SearchGroup" 
           CommandName="Search" ImageUrl="~/images/search.gif" OnClick="_btnSearch_Click"/> 
          </td> 
          <td width="5px" align="right"> 
          <asp:RequiredFieldValidator ID="_rfvQ" ControlToValidate="q" runat="server" validationgroup="SearchGroup" /> 
<asp:HiddenField ID="cx" Value="00054535354544538:kmy_69vgpnm" runat="server" /> 
<asp:HiddenField ID="cof" Value="FORID:11" runat="server" /></td> 
         </tr> 
        </table>  
     </div> 

ログイン制御

<asp:LoginView ID="LoginView1" runat="server"> 
     <AnonymousTemplate> 
      <asp:Login ID="Login" runat="server" Width="100%" FailureAction="RedirectToLoginPage" meta:resourcekey="LoginResource1"> 
       <LayoutTemplate> 
       <table border="0" cellpadding="0" cellspacing="0" width="100%"> 
        <tr> 
         <td width="60px"><asp:Label runat="server" ID="lblUserName" AssociatedControlID="UserName" Text="Username:" meta:resourcekey="lblUserNameResource1" /></td> 
         <td><asp:TextBox id="UserName" runat="server" Width="95%" meta:resourcekey="UserNameResource2" /></td> 
         <td width="5px" align="right"> 
          <asp:RequiredFieldValidator ID="valRequireUserName" runat="server" SetFocusOnError="True" 
          ControlToValidate="UserName" Text="*" ValidationGroup="Login" meta:resourcekey="valRequireUserNameResource1" /> 
         </td> 
        </tr> 
        <tr> 
         <td style="height: 24px"><asp:Label runat="server" ID="lblPassword" AssociatedControlID="Password" Text="Password:" meta:resourcekey="lblPasswordResource1" /></td> 
         <td style="height: 24px"><asp:TextBox ID="Password" runat="server" TextMode="Password" Width="95%" meta:resourcekey="PasswordResource2" /></td> 
         <td width="5px" align="right" style="height: 24px"> 
          <asp:RequiredFieldValidator ID="valRequirePassword" runat="server" SetFocusOnError="True" 
          ControlToValidate="Password" Text="*" ValidationGroup="Login" meta:resourcekey="valRequirePasswordResource1" /> 
         </td> 
        </tr> 
       </table> 
       <table border="0" cellpadding="0" cellspacing="0" width="100%"> 
        <tr> 
         <td><asp:CheckBox ID="RememberMe" runat="server" Text="Remember me" meta:resourcekey="RememberMeResource1"></asp:CheckBox></td> 
         <td align="right"> 
          <asp:ImageButton ID="Submit" runat="server" AlternateText="Login" 
          CommandName="Login" ImageUrl="~/images/go.gif" ValidationGroup="Login" meta:resourcekey="SubmitResource1" /> 
         </td> 
         <td width="5px" align="right">&nbsp;</td> 
        </tr> 
       </table> 
       <div style="border-top: solid 1px black; margin-top: 2px; padding-top: 2px"> 
        <br /> 
        <asp:HyperLink ID="lnkRegister" runat="server" NavigateUrl="~/Register.aspx" meta:resourcekey="lnkRegisterResource1" ForeColor="#104A9D" Text="Create new account"></asp:HyperLink><br /> 
        <asp:HyperLink ID="lnkPasswordRecovery" runat="server" NavigateUrl="~/PasswordRecovery.aspx" meta:resourcekey="lnkPasswordRecoveryResource1" ForeColor="#104A9D" Text="I forgot my password"></asp:HyperLink> 
       </div> 
       </LayoutTemplate> 
      </asp:Login> 
     </AnonymousTemplate> 
     <LoggedInTemplate> 
      <div id="welcomebox"> 
       <asp:LoginName ID="LoginName1" runat="server" FormatString="Hello {0}" meta:resourcekey="LoginName1Resource1" /><br /> 
       <small> 
       <asp:HyperLink ID="lnkProfile" runat="server" Text="Edit Profile" NavigateUrl="~/EditProfile.aspx" meta:resourcekey="lnkProfileResource1" /><br /> 
       <asp:LoginStatus ID="LoginStatus1" Runat="server" meta:resourcekey="LoginStatus1Resource1" /> 
       </small> 
      </div> 
     </LoggedInTemplate> 
    </asp:LoginView> 

ユーザーがテキストを入力した場合、検索は正常に動作します:以下のようにASP.NETマスターページでは、私は、ログインコントロールとGoogleの検索ボックスを持っていますテキストボックスを検索し、検索ボタンをクリックします。ただし、ユーザーが検索テキストボックスにテキストを入力してEnterボタンを押すと、Loginコントロールの検証がオフになります。私はユーザーが単に検索したいので、これを避けたい。

ユーザーが検索テキストボックスに入力すると、検証が実行されないようにするにはどうすればよいですか。

ありがとうございました。

答えて

4

あなたは約ValidationGroupsを読む必要があります。あなたはまた、私はあなたの問題を理解してまで...私は思う...あなただけのデフォルトボタンとして設定された検索ボタンを入力の上、同時に検索したい場合は、デフォルトボタン - link text

+0

あなたのエラーは、あなたが言ったことを少し詳細に、あなたの問題を説明し、他の正常に動作しますと、私は、コードを更新した場合には は、しかし、あなたはすでにValidationGroupsを持っていた私は気づいた何の効果 – Musa

+1

ありません。あなたはデフォルトのボタンを試しましたか? AnonymousTemplateにパネルを配置し、defaultbutton属性を追加する必要があります。フォーム上にあるものを検索に設定します(またはパネルを囲む) - http://msdn.microsoft.com/en-us/ library/system.web.ui.webcontrols.panel.defaultbutton.aspx – RichardOD

+0

デフォルトのボタンに変更すると、おもしろいRichardOD..thanks! – Musa

0

を変更する場合がありますあなたそれが動作し、ログインのテキストボックスの検証を実行しないで、検索ボタンのプロパティを設定します。CauseValidation = false。これは私がやった

関連する問題