为了账号安全,请及时绑定邮箱和手机立即绑定

用户控件内实现文本框自动完成扩展

标签:
Html/CSS

在开发的站点中,想实现一个搜索功能。由于需要放在站点的头部,这样的话,每一个网页都可以使用这个搜索功能。
开发设计,就把这个搜索功能独立出来,写成一个用户控件(ascx),然后拉至母版(MasterPage)上,文本框内有使用Ajax自动完成扩展功能。满怀信心完成...
效果如下:

在网页运行时,发现文本框的自动完成的功能无效果!更多的AutoComplete 的实现,可参考:http://www.cnblogs.com/insus/archive/2013/03/28/2986217.html 此实现只能在正常aspx网页正常运行。一旦移至用户控件之后,Autocomplete的功能,就随之消失。

 难道在用户控件不能使用Ajax的AutoCompleteExtender? 几经测试,有一次竟然成功了!成功的原因,原来WebMethod只能写在aspx.cs页面内:

View Code

[System.Web.Services.WebMethod]        [System.Web.Script.Services.ScriptMethod]        public static string[] GetDisplayUserName(string prefixText, int count)        {            ActiveDirectoryInfo objActiveDirectoryInfo = new ActiveDirectoryInfo();            DataTable dt = objActiveDirectoryInfo.GetDisplayName(prefixText, count);            ArrayList array = new ArrayList();            foreach (DataRow dataRow in dt.Rows)            {                array.Add(dataRow["displayName"].ToString());            }            return (string[])array.ToArray(typeof(string));        }


由于网站很多网页,Insus.NET不可能在每一个aspx.cs 都复制与粘贴这段代码的。解决的方法,写一个BasePage.cs这个类继承System.Web.UI.Page

public class BasePage : System.Web.UI.Page


然后把上面的的webMethod方法代码写在这个BasePage内,站点的网页再继承这个BasePage类即可。

其实,问题是因为没有使用Web Service导致的。如果把它改为Web service或Wcf service,一切都没有这样复杂。

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消