我用AutoCompleteExtender和ScriptManager实现了动态提示,就是记录了你输入的结果.但是我是想动态过滤数据库里的一些东西,比如一个DataTable里的数据,可是不行.不知道怎么回事,还是得用别的方法啊?
 [WebMethod]
    public string[] GetTextString(string prefixText, int count)
    {
        DataTable dt = Test.ReportView();
        DataView dv = new DataView(dt);
        dv.RowFilter = "编码 like '%" + prefixText + "%'";
        DataTable dtnew = dv.ToTable();        List<string> list = new List<string>();
        foreach (DataRow dr in dtnew.Rows) 
        {
            list.Add(dr["编码"].ToString()+"|"+dr["名称"].ToString());
        }
        return list.ToArray();
            }急呀,,高手给看一看..

解决方案 »

  1.   

    楼主是说 dv.RowFilter没有过滤掉你不想要的数据吗?用DataTable.Select方法试试,比如:
    DataRow[] foundRows;
    foundRows = table.Select("Date > '1/1/00'");
      

  2.   

    而且我把WebService里的方法随便写都能实现自动出来输入过的信息..高手指点啊..
      

  3.   

    JS来调用后台函数进行返回显示提示信息[AjaxMethod]函数体这样。
      

  4.   

    JS来调用后台函数进行返回显示提示信息[AjaxMethod]函数体这样。
      

  5.   

    楼上的,它说找不到这个引用啊..
    我装了:AjaxControlToolkit ASPAJAXExtSetup.msi ASPAJAXCTP.msi
    是按照:http://blog.csdn.net/kRiSnI/archive/2007/04/18/1569125.aspx
    的方法做的..按它的意思应该可以实现我需要的结果的.
      

  6.   

    呵呵 这个分我也接了
    <asp:TextBox runat="server" ID="myTextBox" Width="150px"/>
                <ajaxToolkit:AutoCompleteExtender
                    runat="server" 
                    ID="autoComplete1" 
                    TargetControlID="myTextBox"     //控制的文本框
                    ServicePath="WebService.asmx"      //WebService名称
                    ServiceMethod="GetCompletionList"   //方法名称
                    MinimumPrefixLength="1"         //从输入的第多少位开始显示
                    CompletionInterval="10"           //读取记录间隔时间
                    EnableCaching="true"             //是否缓存
                    CompletionSetCount="12" />  //显示最大记录数 using System;
    using System.Web;
    using System.Data;
    using System.Collections;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Collections.Generic;WebService.cs
    /// <summary>
    /// Summary description for WebService
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.Web.Script.Services.ScriptService]
    public class WebService : System.Web.Services.WebService {    public WebService () {        //Uncomment the following line if using designed components 
            //InitializeComponent(); 
        }    [WebMethod]
        public string[] GetCompletionList(string prefixText, int count)
        {
            DataSet1TableAdapters.Table1TableAdapter DALDataSet = new DataSet1TableAdapters.Table1TableAdapter();
            DataTable dt = DALDataSet.C_SelectCompanyNameLike(prefixText);
            count = dt.Rows.Count;
            List<string> items = new List<string>(count);
            for (int i = 0; i < count; i++)
            {
                        items.Add(dt.Rows[i]["CompanyName"].ToString());
            }
            return items.ToArray();
        } 
      

  7.   

    ajax能这样用吗?您是在客户端调用这方法是吗?我试过在客户端调用绑定数据不成
      

  8.   

    ajax不能这样用吗?楼上的看看google的自动完成吧