asp.netページにupdatepanelの周りにラップされた単純なテキストボックスがあります。
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" ChildrenAsTriggers="true" runat="server">
<ContentTemplate>
<asp:TextBox ID="txtShipToName" runat="server"
ToolTip="Enter a name such as a company name or contact name."
MaxLength="50"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
オートコンプリートを実装しようとしています...そこで、次のような.ashxファイル(IHttpHandler)を作成しました。
public class LoadAddress : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
DataSet ds;
Dictionary<long, string> lstAddresses = new Dictionary<long, string>();
ds = BL.GetAddresses(string.Empty, "both", 0, 100); //just snatching some data...
foreach(DataRow dr in ds.Tables[0].Rows)
{
lstAddresses.Add(Convert.ToInt64(dr["AddressID"].ToString()), dr["Name"].ToString());
}
StringBuilder builder = new StringBuilder();
foreach (KeyValuePair<long, string> item in lstAddresses)
{
builder.Append(string.Format("{0}|{1}|{2}",
item.Value,
item.Key,
Environment.NewLine));
}
context.Response.Write(builder.ToString());
}
public bool IsReusable
{
get
{
return false;
}
}
}
しかし、jqueryでそれを呼び出す方法がわかりません、私は試しました:
$("#<%= txtShipToName.ClientID %>").autocomplete('LoadAddress.ashx').
result(function (event, data, formatted) { // data[0] : Address, data[1] : Address ID
});
しかし、結果は未定義です。このメソッドも存在しないことに注意してください... LoadAddress.ashxを呼び出すにはどうすればよいですか?
編集
Web構成ファイルに追加しました:
<httpHandlers>
<add verb="*" path="LoadAddress.ashx" type="MyShipper.LoadAddress"/>
</httpHandlers>
しかし、オートコンプリートは機能していないようです... jqueryで、単純に次のように変更しました。
$("#<%= txtShipToName.ClientID %>").autocomplete('LoadAddress.ashx');
しかし、私が言ったように、オートコンプリートは登場しません。Chromeの開発者ツールにエラーはありません。何が欠けている可能性がありますか?