- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Data;
- using OrderTack.BLL;
- public partial class _Default : System.Web.UI.Page
- {
- OrderTrackRouterBLL bll = new OrderTrackRouterBLL();
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- bindGrid();
- }
- }
- /// <summary>
- /// 获取用户信息
- /// </summary>
- DataTable BindUserMeg(string name)
- {
- DataTable dtUser = bll.GetUserMsg(name);
- return dtUser;
- }
- void bindGrid()
- { //查询记录缓存 DataTable
- DataTable dt = BindUserMeg("");
- Cache.Insert("DSN", dt, null, DateTime.Now.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration);
- GridView1.DataSource = Cache["DSN"];
- GridView1.DataBind();
- }
- protected void Button1_Click(object sender, EventArgs e)
- {//linq模糊查询
- DataTable dtA = (DataTable)Cache["DSN"];
- var query = (from a in dtA.AsEnumerable()
- let username = a.Field<string>("OrderTrackerUserName")
- where username.Contains(TextBox1.Text)
- select new {
- OrderTrackerID=a.Field<int>("OrderTrackerID"),
- OrderTrackerUserName =username,
- OrderTrackerRealName = a.Field<string>("OrderTrackerRealName")
- });
- GridView1.DataSource = query;
- GridView1.DataBind();
- }
- }
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- <link href="CSS/jquery.autocomplete.css" rel="stylesheet" type="text/css" />
- <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
- <script src="js/jquery.autocomplete.js" type="text/javascript"></script>
- <script src="js/widgetfriendlink.js" type="text/javascript"></script>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <asp:GridView ID="GridView1" runat="server">
- </asp:GridView>
- <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
- <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
- <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
- </div>
- </form>
- </body>
- </html>
- <script type="text/javascript">
- $(function() {//智能提示
- $("#txtUserName").autocomplete("ajax/SearchUserName2.ashx", {
- minChars: 1,
- selectFirst: false,
- matchContains: true
- });
- })
- </script>
一般处理程序
- <%@ WebHandler Language="C#" Class="SearchUserName2" %>
- using System;
- using System.Web;
- using OrderTack.BLL;
- using System.Data;
- using System.Text;
- public class SearchUserName2 : IHttpHandler {
- public void ProcessRequest (HttpContext context) {
- context.Response.ContentType = "text/plain";
- string strName = context.Request.QueryString["q"];
- StringBuilder sb = new StringBuilder();
- DataTable dtA = (DataTable)HttpContext.Current.Cache["DSN"];
- var query = (from a in dtA.AsEnumerable()
- let username = a.Field<string>("OrderTrackerUserName")
- where username.Contains(strName)
- select new
- {
- OrderTrackerID = a.Field<int>("OrderTrackerID"),
- OrderTrackerUserName = username,
- OrderTrackerRealName = a.Field<string>("OrderTrackerRealName")
- });
- foreach (var item in query)
- {
- sb.Append("[" + item.OrderTrackerID.ToString() + "]" + item.OrderTrackerUserName).Append("\n");
- }
- context.Response.Write(sb.ToString());
- }
- public bool IsReusable {
- get {
- return false;
- }
- }
- }