gpt4 book ai didi

asp.net - jQuery 自动完成和 ASP.NET

转载 作者:行者123 更新时间:2023-12-03 21:27:02 25 4
gpt4 key购买 nike

我在这个网站和网络上搜索了一个使用 jQuery 和 ASP.NET 的自动完成的良好且简单示例。我想通过网络服务公开自动完成所使用的数据(接下来可能会这样做)。与此同时,我得到了这个工作,但看起来有点老套......

在我的页面中有一个文本框:

<input id="txtSearch" type="text" />

我正在使用 jQuery 自动完成,根据他们的示例进行设置:

<link rel="stylesheet" href="js/jquery.autocomplete.css" type="text/css" />
<script type="text/javascript" src="js/jquery.bgiframe.js"></script>
<script type="text/javascript" src="js/jquery.dimensions.pack.js"></script>
<script type="text/javascript" src="js/jquery.autocomplete.js"></script>

这里开始变得棘手......我调用页面而不是网络服务:

  <script type="text/javascript">
$(document).ready(function(){
$("#txtSearch").autocomplete('autocompletetagdata.aspx');
});
</script>

在页面中,我删除了所有 html,只保留了这个(否则,自动完成下拉列表中会显示各种 HTML 位):

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="autocompletetagdata.aspx.cs" Inherits="autocompletetagdata" %>

在我的 autocompletetagdata.aspx 中,我使用 SubSonic 来查询、格式化并从数据库返回数据(每行一个数据项):

protected void Page_Load(object sender, EventArgs e)
{
// Note the query strings passed by jquery autocomplete:
//QueryString: {q=a&limit=150&timestamp=1227198175320}

LookupTagCollection tags = Select.AllColumnsFrom<LookupTag>()
.Top(Request.QueryString["limit"])
.Where(LookupTag.Columns.TagDescription).Like(Request.QueryString["q"] + "%")
.OrderAsc(LookupTag.Columns.TagDescription)
.ExecuteAsCollection<LookupTagCollection>();

StringBuilder sb = new StringBuilder();

foreach (LookupTag tag in tags)
{
sb.Append(tag.TagDescription).Append("\n");
}

Response.Write(sb.ToString());
}

如果您不执行 LIKE 查询,那么它会返回包含与您键入的字符匹配的所有内容 - 例如,键入“a”将包括“Ask”和“Answer”以及“三月》和《 super 》。我只是想让它开始匹配。

无论如何,它有效并且设置起来非常容易,但是有更好的方法吗?

最佳答案

我最近刚刚实现了自动完成功能,它看起来非常相似。我使用 ashx(通用处理程序)而不是 aspx,但它与后面的代码基本相同。

使用 ashx,它看起来像这样:

<script type="text/javascript">
$(document).ready(function(){
$("#txtSearch").autocomplete('autocompletetagdata.ashx');
});
</script>

[WebService(Namespace = "http://www.yoursite.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class AutocompleteTagData : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// Note the query strings passed by jquery autocomplete:
//QueryString: {q=a&limit=150&timestamp=1227198175320}

LookupTagCollection tags = Select.AllColumnsFrom<LookupTag>()
.Top(context.Request.QueryString["limit"])
.Where(LookupTag.Columns.TagDescription).Like(context.Request.QueryString["q"] + "%")
.OrderAsc(LookupTag.Columns.TagDescription)
.ExecuteAsCollection<LookupTagCollection>();

foreach (LookupTag tag in tags)
{
context.Response.Write(tag.TagDescription + Environment.NewLine);
}
}

public bool IsReusable
{
get
{
return false;
}
}
}

关于asp.net - jQuery 自动完成和 ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/305994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com