2012-06-20 103 views
0

希望有人可以提供幫助。我正在使用c#作爲代碼背後的aspx站點。我有3個輸入框,但是當我的光標位於其中一個輸入框時,它似乎觸發了search_Click代碼,如果光標位於searchBox中,則該代碼很好,但它似乎在光標位於用戶名和密碼文本框。我沒有任何JavaScript解僱這個事件,並且想要做的是如果用戶在searchBox中並且點擊輸入,則它們觸發Search_Click,否則如果它們在用戶名或密碼文本框中並且點擊輸入它們觸發與相關聯的te代碼login_Click。希望這是有道理的,任何人都知道爲什麼它解僱了Response.Redirect,即使我沒有javascript/jquery討論它。輸入Key在aspx頁面上觸發Response.Redirect頁面

//Front end aspx page 
<input type="text" class="searchBox" autocomplete="off" id="searchBox" name="searchBox" runat="server" /> 
<asp:Button ID="searchBtn" class="searchBtn" runat="server" onclick="search_Click" /> 

<li> 
    <asp:Label ID="UserNameLabel" AssociatedControlID="UserName" runat="server" Text="Username :" CssClass="usernamelabel" /> 
    <asp:TextBox ID="UserName" runat="server" ValidationGroup="RegisterValidationGroup" CssClass="Username-Password" />      
</li> 
<li> 
    <asp:Label ID="PasswordLabel" AssociatedControlID="Password" runat="server" Text="Password :" CssClass="usernamelabel" /> 
    <asp:TextBox ID="Password" runat="server" ValidationGroup="RegisterValidationGroup" TextMode="Password" CssClass="Username-Password" /> 
</li> 
<li> 
    <asp:Button ID="loginBtn" class="loginBtn" Text="Login" runat="server" onclick="Login_Click" /> 
</li> 



//C# Code behind 
protected void search_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("/SearchResults.aspx?q=" + Server.UrlPathEncode(searchBox.Value)); 
} 

回答

0

除非我誤解你的問題,你可以使用一個asp:Panel對象

DefaultButton財產登錄使用類似...(未經測試)

<asp:Panel runat="server" DefaultButton="btnLogin"> 
    <asp:TextBox runat="server" id="txtUsername" /> 
    <asp:TextBox runat="server" id="txtPassword" TextMode="Password"/> 
    <asp:Button runat="server" id="btnLogin" Text="Login" /> 
</asp:Panel> 

然後爲搜索有... ...(未經測試)

<asp:Panel runat="server" DefaultButton="btnSearch"> 
    <asp:TextBox runat="server" id="txtSearch" /> 
    <asp:Button runat="server" id="btnSearch" /> 
</asp:Panel> 

這背後的想法是,如果重點是在asp:Panel內,按回車將啓動DefaultButton。如果您不希望特定的一個引起回傳到服務器,則更新DefaultButton以使其自動取消,例如...

<asp:Button runat="server" id="btnSearch" OnClientClick="return false;" /> 
0

可以包括那些不希望默認表單提交行爲在一個小組並設置其DefaultButton屬性的文本框中。

1

您可以嘗試

<asp:TextBox ID="TextBox1" runat="server" onkeydown = "return (event.keyCode!=13);" > 
</asp:TextBox>