首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery自动完成和ASP.NET

jQuery自动完成和ASP.NET
EN

Stack Overflow用户
提问于 2008-11-20 16:46:01
回答 4查看 92.7K关注 0票数 50

我在这个网站和网络上到处寻找使用jQuery和ASP.NET的autocomplete的一个很好的简单的例子,我想用webservice公开autocomplete使用的数据(下一步可能会这样做)。在此期间,我让它工作了,但它看起来有点老土...

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

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

我使用的是jQuery autocomplete,按照他们的例子设置:

<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>

这是它开始变得棘手的地方..。我调用的是页面,而不是call服务:

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

在页面中,我去掉了所有的html,只有这个(否则,在autocomplete下拉列表中会显示各种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“以及"March”和“Mega”。我只想让它从比赛开始。

无论如何,它是有效的,并且很容易设置,但是有没有更好的方法呢?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/305994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档