自动填充搜索框输入字段

时间:2013-07-26 17:46:23

标签: c# html asp.net

我正在使用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);
    }

2 个答案:

答案 0 :(得分:1)

你可以在不停止jquery的情况下使用asp:Textbox

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")

答案 1 :(得分:1)

您的问题很可能就是当您在其上放置runat="server"时,ASP.NET正在更改文本框的ID。你的jQuery可能有类似的东西:

$("#txtSearch")

而是将runat="server"添加到文本框中,然后将其更改为:

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

当页面呈现时,它会为文本框中输入正确的ID。