[asp.net自动补全]自己做的一个最简单的自动补全,分享出来

豆瓣的酱 2010-12-22 12:12:20
此方法要用到 jQuery EasyUI 自己用的是jquery 1.4.2 和easyui 1.2.1
了解easyui:http://www.easyui.net/portal.php

一:aspx页面,挺简单的

<script src="../../../Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="../../../Scripts/jquery.easyui.min.js" type="text/javascript"></script>
<script type="text/javascript">
function GetName(para) {
$("#Text1").combobox({
url: 'VisaLogin.ashx?method=GetName¶='+para,
valueField: 'Unit_Name',
textField: 'Unit_Name',
editable: true, width: 260
})
}
</script>
自动补全:<input id="Text1" onkeyup="GetName(this.value)"/>


二:ashx页面:VisaLogin.ashx

public class VisaLogin : IHttpHandler {
private HttpContext context = null;
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
this.context = context;
string method = context.Request["method"];
switch (method)
{
case "GetName":
GetName(context);
break;
default:
break;
}
}
//自动补全
private void GetName(HttpContext context)
{
context.Response.ContentType = "json";
string para = context.Request["para"];
String json = JsonUtils.ToJson(VisaComponent.GetAllUnit(para).Tables[0]);
context.Response.Write(json);
}


三:就这么两句代码了,另外要用到的两个方法:
JsonUtils.ToJson()(这个是用来把DataSet处理为easyui的接收的数据类型)
VisaComponent.GetAllUnit(para)(这个是从数据库获取数据的方法了)

/// <summary>
/// Datatable转换为Json
/// </summary>
/// <param name="table">Datatable对象</param>
/// <returns>Json字符串</returns>
public static string ToJson(DataTable dt)
{
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
DataRowCollection drc = dt.Rows;
for (int i = 0; i < drc.Count; i++)
{
jsonString.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
jsonString.Append("},");
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
return jsonString.ToString();
}

另一个:

/// <summary>
/// 自动补全
/// </summary>
/// <returns></returns>
public static DataSet GetAllUnit(string unitName)
{
string sql = "SP_UNIT_GETALL";
SqlParameter[] para = new SqlParameter[] {
new SqlParameter("@Unit_Name",unitName)
};
return SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, sql,para);
}


四:这是数据库,和存储过程

create table T_UNIT(
Unit_Name varchar(50) not null
)
ALTER PROCEDURE [dbo].[SP_UNIT_GETALL]
@Unit_Name varchar(50)
AS
BEGIN
select Unit_Name from T_UNIT
where Unit_Name like @Unit_Name+'%'
END
...全文
575 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xf198903 2010-12-22
  • 打赏
  • 举报
回复
不错。好东西。谢谢楼主。的细心
豆瓣的酱 2010-12-22
  • 打赏
  • 举报
回复
欢迎发言 ~~
subxli 2010-12-22
  • 打赏
  • 举报
回复
谢谢分享。
ChinaBruceHe 2010-12-22
  • 打赏
  • 举报
回复
AJAX2.0有这个控件哈。。。。。。
yunsheng3835 2010-12-22
  • 打赏
  • 举报
回复
路过
留个脚印
JiuchunYoung 2010-12-22
  • 打赏
  • 举报
回复
谢谢楼主 分享
  • 打赏
  • 举报
回复
看完代码终于知道自动补全究竟是什么意思了~~~~~哎。。。太笨了,自己
myhope88 2010-12-22
  • 打赏
  • 举报
回复
多谢分享啦
q107770540 2010-12-22
  • 打赏
  • 举报
回复
感谢分享
jcx396158820 2010-12-22
  • 打赏
  • 举报
回复
这些以前都用过,还过还是要感谢楼主了

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧