日期:2014-05-17  浏览次数:20519 次

做搜索引擎问题
请问下我想实现以下功能:
在A页面让用户在TextBox里面输入任何数值,然后点击搜索,在B页面根据用户所输入的名称把搜索到的所有记录都找出来?输入名称不存在,则提示没有找到数据:
我写的代码只能根据Equipment_Name搜索,我要的是不管用户输入什么东西(比如Equipment_Name,Cal_Date....)
或者有谁告诉我怎么样做这样的搜索好点?让用户选择还是直接输入?代码?谢谢。
A页:
  protected void btnSearch_Click(object sender, EventArgs e)
  {
  string Key = this.txtSearch.Text;
  Response.Redirect("SearchResult.aspx?Key=" + Key);
  }

B页:
  string key = Request.QueryString["Key"].ToString();
  SqlConnection con = GetConnection();
  con.Open();
  SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM calMainRecords WHERE Equipment_Name like '1%'", con);
  DataTable Data = new DataTable();
  sda.Fill(Data);
  con.Close();
  this.GridView1.DataSource = Data;
  this.GridView1.DataBind();

------解决方案--------------------
让用户选择搜索的类型,然后让用户输入选择的内容
------解决方案--------------------
让用户输入,然后做个自动补全,既好看,用户体验友好,LZ你值得拥有

1. 创建 AjaxPage.aspx 页面,在其中定义 WebMethod 方法来返回 搜索页面需要的输入框所有提示条目。 后台代码如下: 


复制代码 代码如下:
using System.Collections.Generic; 
using System.IO; 
using System.Runtime.Serialization.Json; 
using System.Web.Services; 
public partial class AjaxPage : System.Web.UI.Page 

[WebMethod] 
public static string GetAllHints() 

Dictionary<string, string> data = new Dictionary<string, string>(); 
data.Add("苹果4代iphone正品", "21782"); 
data.Add("苹果4代 手机套", "238061"); 
data.Add("苹果4", "838360"); 
data.Add("苹果皮", "242721"); 
data.Add("苹果笔记本", "63348"); 
data.Add("苹果4s", "24030"); 
data.Add("戴尔笔记本", "110105"); 
data.Add("戴尔手机", "18870"); 
data.Add("戴尔键盘", "30367"); 
DataContractJsonSerializer serializer = new DataContractJsonSerializer(data.GetType()); 
using (MemoryStream ms = new MemoryStream()) 

serializer.WriteObject(ms, data); 
return System.Text.Encoding.UTF8.GetString(ms.ToArray()); 




注:该方法返回的数据格式为json字符串。 
2. 创建搜索页面 Index.aspx, 前台代码如下: 
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.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 rel="Stylesheet" href="Styles/jquery.autocomplete.css" /> 
<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script> 
<script type="text/javascript" src="Scripts/jquery.autocomplete.js"></script> 
<script type="text/javascript"> 
var v = 1; 
$(document).ready(function () { 
$.ajax({ 
type: "POST", 
contentType: "application/json", 
url: "AjaxPage.aspx/GetAllHints", 
data: "{}", 
dataType: "json", 
success: function (msg) { 
var datas = eval('(' + msg.d + ')');