AutoCompleteExtenderで、textとvalueを別々にしたい!
リストに表示される値とは別にvalue値を保持しておきたい。
その場合は、ServiceMethodプロパティにセットしたメソッド内にて、
AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(<text>,<value>)メソッドを使う。
以下、リストを選択したら、textとvalueをalert表示するサンプル。
ちなみにこのまま書いても動きません。TargetControlを設定してください。
【WEBサービス】
[WebMethod()]
public String GetCompletionList(String prefixText, int count)
{
string list = new string[count];for (int i = 0; i < count; i++)
{
list[i] = AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem
(prefixText + "の" + i.ToString() + "番目", //リストに表示されるテキスト
i.ToString() //value値(リストには表示されない)
);
}return list;
}
【ASPXソース】
<ajaxToolkit:AutoCompleteExtender runat="server"
OnClientItemSelected = "IAmSelected"
ServiceMethod = "GetCompletionList"
...>
【javascript】
function IAmSelected( source, eventArgs ) {
alert( " text : "+ eventArgs.get_text() +" value : " + eventArgs.get_value());
}
参考:How to : Use a Key Value Pair in your AutoCompleteExtender