6

ユーザーが入力したときに名前を提案するために、オートコンプリート エクステンダーを使用しています。ユーザーが項目を選択した後に選択値を取得する方法は? onclientitemselected を使用できると思いますが、これの書き方に慣れていませんか? autocompleteextender テキスト ボックスの選択内容に基づいて、テキスト ボックスに入力する必要があります。ありがとうございました

 <asp:TextBox ID="TextBox1" runat="server" Height="27px" Width="570px"></asp:TextBox>
        <asp:AutoCompleteExtender ID="AutoCompleteExtender" runat="server" 
    DelimiterCharacters="" Enabled="True" ServicePath="AutoComplete.asmx"  
    ServiceMethod="GetCompletionList" TargetControlID="TextBox1" 
    MinimumPrefixLength="2" UseContextKey="true" ContextKey="StateDropDown" 
            CompletionListElementID="autocompleteDropDownPanel">
</asp:AutoCompleteExtender>
4

2 に答える 2

5

このためには、ID とテキストを使用して Web サービス メソッドからリストを返す必要があります。

ここで「lst」は、データ ソースからのデータを含む実際のリストです。

List<string> items = new List<string>(count);
        for (int i = 0; i < lst.Count; i++)
        {
            string str =AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(lst[i].Text,Convert.ToString(lst[i].IDValue));                
            items.Add(str);

        }
        return items.ToArray();

次に簡単なJavaScript

function GetID(source, eventArgs )
    {
        var HdnKey = eventArgs.get_value();
        document.getElementById('<%=hdnID.ClientID %>').value = HdnKey;
    }

オートコンプリートエクステンダー OnClientItemSelected="GetID"で属性を設定することを忘れないでください

于 2013-10-22T10:38:48.863 に答える
0

AutoCompleteExtender単に ASP.NETTextBoxコントロールを拡張するだけなので、テキストがいつ変更されたかを知りたい場合は、次のようにコントロールでTextChangedイベントを発生させます。TextBox

Markup:
<asp:TextBox ID="TextBox1" runat="server" Height="27px" Width="570px" OnTextChanged="TextBox1_TextChanged" AutoPostBack="true"></asp:TextBox>

Code-Behind:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    // Do something here with textbox value
}
于 2013-06-27T17:53:03.997 に答える