做搜索引擎问题
请问下我想实现以下功能:
在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 + ')');