类似百度谷歌搜索,搜索出关键字显红色
2010-01-23 19:46 三皮开发时 阅读(509) 评论(0) 编辑 收藏 举报DinaSet.cs 用于将搜索的关键字放入数组,用于替换关键字用,令搜索的关键字显红色
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Collections;
using System.IO;
/// <summary>
///DinaSet 的摘要说明
/// </summary>
public class DinaSet
{
private ArrayList dinarray = new ArrayList();
public ArrayList Dinarray
{
get
{
return dinarray;
}
}
}
------------------------------------------------------------------------------------------------------------------------------------
NewDina.cs Model表
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
///NewDina 的摘要说明
/// </summary>
public class NewDina
{
# region Fields
private string _news_Title = String.Empty;
private string _news_Content = String.Empty;
private string _news_Time;
private string _voteID;
private string _voteTitle;
#endregion
#region Public Properties
public string voteID
{
get { return _voteID; }
set { _voteID = value; }
}
public string voteTitle
{
get { return _voteTitle; }
set { _voteTitle = value; }
}
public string news_Title
{
get { return _news_Title; }
set { _news_Title = value; }
}
public string news_Content
{
get { return _news_Content; }
set { _news_Content = value; }
}
public string news_Time
{
get { return _news_Time; }
set { _news_Time = value; }
}
#endregion
}
------------------------------------------------------------------------------------------------------------------------------------
Default.aspx 前台代码
<%@ 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>
<style type="text/css">
.style1 {
width: 100%;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" on
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<table class="style1">
<tr>
<td>
<%#Ev
<td>
<%#Ev
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</div>
</form>
</body>
</html>
------------------------------------------------------------------------------------------------------------------------------------
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Da
using System.Da
using System.Da
public partial class _Default : System.Web.UI.Page
{
string strCon = ConfigurationManager.AppSettings["ConnectionString"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
}
public string keyword_sousuo(string table_field, string keyword)
{
string str01 = "", str02 = "", keyword_Words;
string[] keywords, table_fields;
table_fields = table_field.Split(',');
keywords = keyword.Split(',');
if (table_field != "")
{
str01 = "(" + table_fields[0].ToString() + " like '%" + keyword + "%'" + ")";
for (int i = 0; i < table_fields.Length; i++)
{
str01 = str01 + " or " + table_fields[i].ToString() + " like '%" + keyword + "%'";
}
//str01 = str01 + ")";
}
else
{
Response.Write("<script>alert('参数错误(不能为空)!')</script>");
}
keyword = keyword.Replace(" ", " ");
keywords = keyword.Split(' ');
if (keywords.Length > 0)
{
for (int i = 0; i < keywords.Length; i++)
{
str02 = str02 + " or " + table_fields[0].ToString() + " like '%" + keywords[i].ToString() + "%'";
for (int j = 1; j < table_fields.Length; j++)
{
str02 = str02 + " or " + table_fields[j] + " like '%" + keywords[i].ToString() + "%'";
}
// str02 = str02 + ")";
}
//str02 = "(" + str02.Replace(")(", ")and(") + ")";
keyword_Words = "(" + str01 + " " + str02 + ")";
}
else
{
keyword_Words = str01;
}
return keyword_Words;
}
public string keyword_tag(string str,string keyword)
{
string str01, str02;
string[] keywords;
string keyword_tag = "";
keyword = keyword.Replace(" ", " ");
str01 = str.Replace(keyword,"<font color='#ff0000'>"+keyword+"</font>");
keywords=keyword.Split(' ');
if (keywords.Length > 0)
{
str02 = str;
for (int i = 0; i < keywords.Length; i++)
{
str02 = str02.Replace(keywords[i], "<font color='#ff0000'>" + keywords[i] + "</font>");
}
keyword_tag = str02;
}
else
{
keyword_tag = str01;
}
return keyword_tag;
}
protected void Button1_Click(object sender, EventArgs e)
{
string keyword = TextBox1.Text.Trim();
string sql_where = keyword_sousuo("voteID,voteTitle", keyword);
string strconn = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection conn = new SqlConnection(strconn);
conn.Open();
string strsql = "select voteID,voteTitle from tb_Vote where " + sql_where + "order by voteID";
SqlDataAdapter sda = new SqlDataAdapter(strsql, conn);
DataSet ds = new DataSet();
sda.Fill(ds);
DataTable dt = ds.Tables[0];
DinaSet nds = new DinaSet();
foreach (DataRow dr in dt.Rows)
{
NewDina nda = new NewDina();
nda.voteID = keyword_tag(dr["voteID"].ToString(), keyword);
nda.voteTitle = keyword_tag(dr["voteTitle"].ToString(), keyword);
nds.Dinarray.Add(nda);
}
DataList1.DataSource = nds.Dinarray;
DataList1.DataBind();
conn.Close();
}
}
------------------------------------------------------------------------------------------------------------------------------------
吸取他人思想 :站在巨人的肩膀上