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