猿问

jQuery自动完成和ASP.NET

我在整个网站和网络上搜索了一个使用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”以及“ March”和“兆。” 我只是想让它从比赛开始。


无论如何,它可以工作并且很容易设置,但是有更好的方法吗?


收到一只叮咚
浏览 583回答 3
微课
3回答
随时随地看视频慕课网APP
我要回答