2013-07-26 80 views
0

我正在使用JQuery自動完成搜索文本框與我的數據庫。當我想使用html文本框訪問查詢字符串中的搜索文本框的文本時,問題就出現了。爲了在上下文中做到這一點,我必須使用runat="server"或者我可以使用asp:Textbox,但在這兩種情況下,我的自動完成功能都停止工作。自動完成搜索框輸入字段

下面是ASPX代碼:

<div id="search-location-wrapper"> 
      <input type="text" id="txtSearch" class="autosuggest" /> 
      <div id="search-submit-container"> 
      <asp:Button ID="btnSearch" runat="server" Text="Search" 
         onclick="btnSearch_Click"></asp:Button> 
      </div> 
</div> 

C#代碼:

protected void btnSearch_Click(object sender, EventArgs e) 
    { 
     string location = txtSearch.ToString(); /*Here is the error: txtSearch is not in current context */ 
     int id = Convert.ToInt32(ddlCategory.SelectedValue); 
     string url = "SearchResults.aspx?Id="+id+"&location="+location; 
     Response.Redirect(url); 
    } 

回答

1

您的問題很可能只是當您將runat="server"放在上面時,ASP.NET正在更改您的文本框的ID。您的jQuery的可能有類似:

$("#txtSearch") 

相反,添加runat="server"到您的文本框,然後將其更改爲:

$("#<%= txtSearch.ClientID %>") 

當頁面呈現,它會把正確的ID在文本框中。

1

可以使用asp:Textbox不回採的jQuery:

ASP: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

jQuery選擇: $("#TextBox1")

,如果你有一個母版一個gridview的您可以通過使用檢查元素在你的瀏覽器中得到你的元素的客戶端ID ..

ASP:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 

    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

</asp:Content> 

的jQuery選擇器: $("#ContentPlaceHolder1_TextBox1")