欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

Asp.Net自动完成之AutoComplete控件使用例子

创建时间:2011年09月08日 21:37  阅读次数:(7538)
分享到:
本例用到的所有辅助控件与数据均为小编测试所用,具体使用时请读者自行更改!

一、首先建一个AJAX web页面,然后添加一个TextBox,然后添加扩展程序选择utoCompleteExtender控件。

二、设置AutoCompleteExtender的必要属性:
TargetControl--属性关联为TextBox;
MinimumPrefixLength--为输入多少个字符串后就执行自动关联数据;
ServicePath--是所用到读取数据的WebService文件的名字;
CompletionSetCount--是下拉框中的最多数据数量;
CompletionInterval--是输入字符后等待查询的时间(1000就是1秒),就是用户停顿多久后开始执行查询;
ServiceMethod--webservice返回数据的方法名。

示例如下:
<asp:Manager ID="Manager1" runat="server" / >
<asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox > 
<cc1:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server"  DelimiterCharacters="" Enabled="True" MinimumPrefixLength="3" ServiceMethod="GetCompleteList" ServicePath="WebService.asmx" TargetControlID="TextBox1" UseContextKey="True" CompletionSetCount="30" CompletionInterval="100" > 
</cc1:AutoCompleteExtender >


三、添加WebService,来获取数据库中的数据,小编自己测试时是用数据库中数据,读者可以自行选行任何数据源,只要ServiceMethod指定的方法返回一个string[]结果集就行。

示例如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;

[WebService(Namespace = "http://www.lmwlove.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
[System.Web...Services..Service]
public class WebService : System.Web.Services.WebService {
    public WebService () {
        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

    [WebMethod]
    public string[] GetCompleteList(string prefixText, int count)  
    {
       List<string > items = new List<string >(count);
       SqlConnection myCon = new SqlConnection("Server=.;uid=sa;pwd=719418;Database=pubs");
        myCon.Open();
        SqlCommand myCmd = new SqlCommand("select top " + count + " au_lname from authors where au_lname like '" + prefixText + "%'group by au_lname order by au_lname ", myCon);
        SqlDataReader myDR = myCmd.ExecuteReader();
        while (myDR.Read())
        {
            items.Add(myDR["au_lname"].ToString());
        }
        myCon.Close();
        return items.ToArray();
    }
}


若使用其它数据源:
using System;
using System.Web;
using System.Collections.Generic;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//用以调用Web Service方法签名
[System.Web...Services..Service]
public class WebService : System.Web.Services.WebService {
    public WebService () {}
    [WebMethod]
    public string[] GetCompletionList(string prefixText, int count)
    {
        List<string > items = new List<string >();
        for (int i = 0; i<count; i++)
        {
            items.Add(i.ToString());
        }
        return items.ToArray();
    }
}
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 8+18=? 的结果(结果是:26)
结  果: