代码改变世界

类似百度谷歌搜索,搜索出关键字显红色

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" onclick="Button1_Click" />
        <asp:DataList ID="DataList1" runat="server">
            <ItemTemplate>
                <table class="style1">
                    <tr>
                        <td>
                           <%#Eval("voteID") %></td>
                        <td>
                            <%#Eval("voteTitle") %></td>
                    </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.Data;
using System.Data.SqlClient;
using System.Data.Common;
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();

    }
}

------------------------------------------------------------------------------------------------------------------------------------

吸取他人思想  :站在巨人的肩膀上类似百度、搜狗 搜索 搜索关键字显红色 - 三皮 - 三皮