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);
    }
4

2 に答える 2

1

asp:Textboxjqueryを停止せずに使用できます:

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

jQuery セレクター: $("#TextBox1")

masterpageまたはgridviewがある場合は、ブラウザーでInspect Element を使用して要素のクライアント ID を取得できます。

ASP:

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

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

</asp:Content>

jQuery セレクター: $("#ContentPlaceHolder1_TextBox1")

于 2013-07-26T17:53:35.127 に答える
1

あなたの問題は、ASP.NET がテキストボックスの ID を変更している可能性がありますrunat="server"。あなたのjQueryにはおそらく次のようなものがあります:

$("#txtSearch")

代わりに、テキスト ボックスに を追加してから、次のrunat="server"ように変更します。

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

ページがレンダリングされると、テキスト ボックスに正しい ID が挿入されます。

于 2013-07-26T17:57:30.597 に答える