自动完成也不是什么新技术了,在一些较好的网站上都能看到其应用,下面就把代码贴出来(仅限跟我同一级别的菜鸟观看……老鸟请路过……)
需要一个WebService 我也懒得改名子,就直接叫WebService.asmx; 为什么要用WebService? 其实我也不太清楚,只知道AutoCompleteExtender需要三个最为关键的属性:
- ServicePath="WebService.asmx"
- ServiceMethod="GetWordList"
- TargetControlID="txtText"
如果知道这三个属性的话,也许就清楚为什么要用WebService了,ServicePath:就是WebService的路径,ServiceMethod:WebService中的方法名称,TargetControlID就是要对哪个控件实现自动完成效果(说的有点不清楚,但明白是什么意思就行了);
代码如下:
using System;
using System.Web.Services;
using System.Data;
using System.Data.SqlClient;
using CommonUtility;
namespace GridView入库单管理
{
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
[WebMethod]
public String[] GetWordList(string prefixText, int count)
{
string sql = string.Format("select top {0} * from InBill where saleName like '%" + @prefixText + "%'", @count);
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@prefixText",prefixText),
new SqlParameter("@count",count)
};
DataTable table = SQLHelper.GetDateSet(sql, CommandType.Text, paras);
string[] arr = new string[table.Rows.Count];
if (table != null)
{
for (int i = 0; i < table.Rows.Count; i++)
{
arr[i] = table.Rows[i]["saleName"].ToString();
}
}
return arr;
}
}
}
using System.Web.Services;
using System.Data;
using System.Data.SqlClient;
using CommonUtility;
namespace GridView入库单管理
{
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
[WebMethod]
public String[] GetWordList(string prefixText, int count)
{
string sql = string.Format("select top {0} * from InBill where saleName like '%" + @prefixText + "%'", @count);
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@prefixText",prefixText),
new SqlParameter("@count",count)
};
DataTable table = SQLHelper.GetDateSet(sql, CommandType.Text, paras);
string[] arr = new string[table.Rows.Count];
if (table != null)
{
for (int i = 0; i < table.Rows.Count; i++)
{
arr[i] = table.Rows[i]["saleName"].ToString();
}
}
return arr;
}
}
}