不使用web服务(Service)实现文本框自动完成扩展
程序员文章站
2024-03-04 11:47:47
以前写ajax 的autocompleteextender功能,都需要写wcf service或是web service数据源。但一个系统中,很多文本框都想使用autoco...
以前写ajax 的autocompleteextender功能,都需要写wcf service或是web service数据源。但一个系统中,很多文本框都想使用autocomplete的功能。我们不可能写很多的service,比如一些较小的数据。我们是否有一个可替换的方法呢?这是肯定的。下面的演示,insus.net以不用写service来实现文本框的autocompete extender功能。
首先从数据库获取数,你可以写sql语句,或是写存储过程,以下是获取域用户信息,仿outlook输入收件人效果。
在[activedirectoryinfo]表中的信息,是定期与域的活动目录同步。
复制代码 代码如下:
usp_activedirectoryinfo_getdisplaynameforservice
set ansi_nulls on
go
set quoted_identifier on
go
-- =============================================
-- author: insus.net
-- create date: 2013-03-28
-- description: get dissplay name form web service
-- =============================================
create procedure [dbo].[usp_activedirectoryinfo_getdisplaynameforservice]
(
@prefixtext nvarchar(max),
@count int
)
as
declare @w nvarchar(max) = @prefixtext + '%'
execute('select top (' + @count + ') [displayname] from [dbo].[activedirectoryinfo] where [displayname] like ''' + @w +'''')
在逻辑层,我们写一个类别,去与数据层交互:
复制代码 代码如下:
using system;
using system.collections.generic;
using system.data;
using system.linq;
using system.web;
/// <summary>
/// summary description for activedirectoryinfo
/// </summary>
namespace insus.net
{
public class activedirectoryinfo
{
businessbase objbusinessbase = new businessbase();
public activedirectoryinfo()
{
//
// todo: add constructor logic here
//
}
public datatable getdisplayname(string prefixtext,int count)
{
parameter[] parameter = {
new parameter ("@prefixtext",sqldbtype.nvarchar,-1,prefixtext),
new parameter ("@count",sqldbtype.int,4,count)
};
return objbusinessbase.getdatatodataset("usp_activedirectoryinfo_getdisplaynamebyprefixtext", parameter).tables[0];
}
}
}
以上类别中,有一个对象即是businessbase
把scriptmanager
复制代码 代码如下:
<asp:scriptmanager id="scriptmanager1" runat="server"></asp:scriptmanager>
或toolkitscriptmanager
复制代码 代码如下:
<ajaxtoolkit:toolkitscriptmanager id="toolkitscriptmanager1" runat="server" />
拉至网页。
下图是html与cs程序,在方法前必须两行代码:
复制代码 代码如下:
[system.web.services.webmethod]
[system.web.script.services.scriptmethod]
效果:
上一篇: python添加模块搜索路径方法
下一篇: java使用OGEngine开发2048