2012-09-11 44 views
0

我構建了一個ASP.NET Web應用程序,並且我有一個用戶可以找到其他用戶的TextBox。爲此,我想使用AjaxToolKit中的AutoCompleteExtender。我從Active Directory獲得的數據。如果我啓動我的頁面,應用程序使用ActiveDirectory中的所有UserDate創建一個DataTable,我的問題是。我可以使用DataTable從AjaxToolKit的AutoCompleteExtender

我可以在AutoCompleteExtender中使用DataTabe作爲信息嗎?如果我可以使用這個如何使用這個?

+0

而不是使用** Ajax AutoCompleteExtender **爲什麼不使用** webservice **和** J-query **自動完成文本框。 – RL89

回答

1

根據official documentation你不能。不僅你不能使用DataTable,但你必須實現一個Web服務,並在其中實現一個具有特定簽名的web方法。

如果你不介意使用jQuery,我可以給你看一個使用jQuery的例子。

更新:

使用jQuery所有你需要做的是包括在您的標記以下庫:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script> 
<script src="http://code.jquery.com/ui/1.8.23/jquery-ui.min.js" type="text/javascript"></script> 

在您的標記,你可以添加一個asp:hiddenElement和文本元素會用於自動完成,如下所示:

<asp:HiddenElement id="hdnAutoComplete" runat="server" /> 
<asp:TextBox id="txtAutoComplete" runat="server" /> 

現在,您只需添加以下Javascript函數於:

$(function(){ 
var items = eval($('#<%=hdnAutoComplete.ClientID%>').val()); 

    $("#<%=txtAutoComplete.ClientID%>").autocomplete({ 
    source: items 
    }); 

}); 

最後,你需要設置你要使用自動完成從codebhind的元素。既然你想使用一個DataTable,我會告訴你一個簡單的方法:

protected void Page_Load(object sender, EventArgs e) 
{ 
    DataTable t = ...//your datatable is this 

    var query = (from c in t.AsEnumerable() 
       select c.Field<string>("NameOfTheColumnYouWant")).ToArray(); 

    //this will create a javascript array on the client-side when it's eval'd 
    hdnAutoComplete.Value = "["+string.Join(",",query)+"]"; 

} 

閱讀從jQuery UI的官方文檔here更多的例子。

+0

是的給我看一個例子:P – Tarasov

+0

please .......... – Tarasov

+0

@Tarasov查看我的更新 – Icarus

相關問題