asp.net搜尋匹配關鍵字為紅色顯示的代碼

來源:互聯網
上載者:User
asp.net|搜尋|顯示|關鍵字|匹配 首先建立類庫 Model (業務實體層),建立類: NewDina.CS 用於擷取資料庫相應欄位名,

Demo如下:

[Copy to clipboard] [ - ]CODE:    public class NewDina
    {
        #region Fields
        private string _news_Title = String.Empty;
        private string _news_Content = String.Empty;
        private string _news_Time;
        #endregion
        Public Properties#region Public Properties
        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
    }
然後再建立一個類inaSet.CS該列用於將搜尋的關鍵字放入數組,用於替換關鍵字用,令搜尋的關鍵字顯紅色;

Demo如下:

[Copy to clipboard] [ - ]CODE:    public class DinaSet
    {
        private ArrayList dinarray = new ArrayList();
        public ArrayList Dinarray
        {
            get
            {
                return dinarray;
            }
        }
    }
類建立好之後就是介面設計了,

Demo如下:

[Copy to clipboard] [ - ]CODE:<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>無標題頁</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="txt" runat="server"></asp:TextBox>
    <asp:Button ID="btnSearch" runat="server" Text="搜 索" /><br />
    <asp:DataList ID="dlData" runat="server" Height="158px" Width="100%">
        <HeaderTemplate>
            <table border="0" cellpadding="0" cellspacing="0" width="100%" style="height:100%">
                <tr>
                    <td>標題</td>
                    <td>內容</td>
                    <td>時間</td>
                </tr>
        </HeaderTemplate>
        <ItemTemplate>
                <tr>
                    <td colspan="3"></td>
                </tr>
                <tr>
                    <td style="width:200px"><%...# Eval("news_Title")%></td>
                    <td><%...# Eval("news_Content")%></td>
                    <td><%...# Eval("news_Time")%></td>
                </tr>               
        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:DataList>
    </div>
    </form>
</body>
</html>
後台代碼如下:

[Copy to clipboard] [ - ]CODE: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 btnSearch_Click(object sender, EventArgs e)
    {
        string keyword = txt.Text;
        string sql_where = keyword_sousuo("news_Title,news_Content,news_Time",keyword);
        string strconn = "server=;User ID=sa;Password=123456;database=r;";
        SqlConnection conn = new SqlConnection(strconn);
        conn.Open();
        string strsql = "select news_Title,news_Content,news_Time from CMgr_NewsDiary where " + sql_where + "order by news_Id";
        SqlDataAdapter sda = new SqlDataAdapter(strsql,conn);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        DataTable dt = ds.Tables[0];
        ModelData.DinaSet nds = new ModelData.DinaSet();-_!!
        foreach(DataRow dr in dt.Rows)
        {
            ModelData.NewDina nda = new ModelData.NewDina();
            nda.news_Title =keyword_tag( dr["news_Title"].ToString(),txt.Text);
            nda.news_Content =keyword_tag( dr["news_Content"].ToString(),txt.Text);
            nda.news_Time =keyword_tag(dr["news_Time"].ToString(),txt.Text);
            nds.Dinarray.Add(nda);
        }
        dlData.DataSource = nds.Dinarray;
        dlData.DataBind();
        conn.Close();
    }
其中keyword_sousuo(string table_field, string keyword)方法的作用是返回條件查詢語句的條件字元.

keyword_tag(string str,string keyword)方法的作用是將返回的結果資料中響應關鍵字進行替換,令查詢的關鍵字顯紅色

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。