2012-05-01 83 views
0

我有我的asp.net頁面各處一個UpdatePanel包裹在一個簡單的文本框:jQuery的自動完成不知道如何加載C#處理

<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?

編輯

我加入到網絡配置文件:

<httpHandlers> 
     <add verb="*" path="LoadAddress.ashx" type="MyShipper.LoadAddress"/> 
    </httpHandlers> 

但似乎沒有工作自動完成......在jQuery的我改成簡單:

$("#<%= txtShipToName.ClientID %>").autocomplete('LoadAddress.ashx');

但就像我說過的,沒有自動完成功能出現。 Chrome中的開發人員工具沒有錯誤。 我可能會錯過什麼?

+0

請誰能幫我這個:( – oJM86o

回答

1

您是否在web.config中註冊了您的LoadAddress處理程序?

(IIS 6):

<system.web> 
    <httpHandlers> 
     <add verb="*" path="LoadAddress.ashx" type="NameOfClass, NameOfAssembly"/> 
    </httpHandlers> 
</system.web> 

(和IIS 7+):

<system.webServer> 
    <handlers> 
     <add name="LoadAddress" verb="*" path="LoadAddress.ashx" type="NameOfClass, NameOfAssembly"/> 
    </handlers> 
</system.webServer> 
+0

嗨@TimDog,你會爲我進入nameofclass和nameofassembly?對於nameofclass,我給它的類名稱的ASHX文件?例如在我上面的例子LoadAddress? – oJM86o

+0

我試着把'type =「LoadAddress」',但沒有工作 – oJM86o

+0

看到我的編輯在我的問題。 .still不工作:( – oJM86o

相關問題