公式ドキュメントによると、できません。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 の公式ドキュメントのその他の例については、こちらを参照してください。