根據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更多的例子。
而不是使用** Ajax AutoCompleteExtender **爲什麼不使用** webservice **和** J-query **自動完成文本框。 – RL89