2011-10-17 55 views
0

我想知道是否有方法使用ajax工具包autocompleteextender掛鉤到多個文本框控件。Ajax工具包AutoCompleteExtender

原因是我們有多個文本框控件,並且我不喜歡使用8個autocomplextxtender來執行相同的操作,因爲所有8個需要正確初始化等等,感覺更容易維護。

編輯:

我構成,即初始化autocompleteextender對象和每一個對象傳遞給該方法的方法,所以需要設置單獨對每一個的唯一事情是ID和TargetElementID。至少比沒有好,但我仍然希望有更好的解決方案。

回答

2

不是一個具體的問題的答案,但我一直使用Ajax控件工具包自動完成擴展,但後來我發現了JQuery的一個,在我看來這是更好的,我認爲你可以很容易地做你想做的,雖然您需要將其分配給jQuery中的每個控件,但您只需要2個函數,一個用於獲取數據,另一個用於處理結果。

你做類似的東西如下:

$(document).ready(function() { 

    $('#<%=txtSearchBox.ClientID%>').autocomplete('/Search.ashx'); 
    $('#<%=txtSearchBox.ClientID%>').result(function (event, data, formatted) { 
     if (data) { 

      // Extract the data values 
      var name = data[0]; // appears in textbox 
      var dataval1= data[1]; 
      var dataval2= data[2]; 


      $("#<%=hdndataval1.ClientID%>").val(dataval1); 
      $("#<%=hdndataval2 .ClientID%>").val(dataval2); 
     } 
    }); 

}); 

你必須使用隱藏字段存儲的ID,但它使用一個處理程序自動填充很好。

public void ProcessRequest(HttpContext context) 
    { 
      string prefixText = context.Request.QueryString["q"]; 
      //do your thing here and return as a bar separated list 
      StringBuilder sb = new StringBuilder(); 
      foreach(Results res in results) 
      { 
       sb.Append(String.Format("{0}|{1}|{2}", +res.Val1, res.Val2, res.Val3)); 
       sb.Append(Environment.NewLine); 
      } 
      context.Response.Write(sb.ToString()); 
    } 

jQuery的是here(我認爲)

必須承認我使用該控件工具箱發誓,但已經被引入到jQuery的我已經找到了控制負荷,我認爲要好得多!

只是想我會在你的方向拋出一個不同的選擇!

+0

謝謝,我研究過它,它感覺像一個更可行的解決方案,ajaxtoolkit似乎不會讓你定製它的大部分行爲。 –

+0

很高興爲您服務!當你需要使用ajax時,肯定會查看其他可用的Jquery控件..有一些有趣的! – Bex