asp.net搜索匹配关键字为红色显示的代码

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)方法的作用是将返回的结果数据中响应关键字进行替换,令查询的关键字显红色

时间: 2024-10-17 23:26:42

asp.net搜索匹配关键字为红色显示的代码的相关文章

Android 搜索结果匹配关键字且高亮显示功能

1. 单关键字 匹配 如果只是单关键字的话,那么我们先计算出他的下标,它的长度,然后就可以标记下标到下标+长度的这一段为特殊颜色即可,代码如下: if (name != null && name.contains(keyWord)) { int index = name.indexOf(keyWord); int len = keyWord.length(); Spanned temp = Html.fromHtml(name.substring(0, index) + "<

js实现搜索框关键字智能匹配代码_javascript技巧

只要使用搜索引擎的朋友应该都有这样的体会,就是当在搜索框输入关键字的时候,会出现自能匹配现象,这绝对是非常好的用户体验,下面就是一段类似的代码,当然这里只是掩饰,所以只能匹配的数据都是本地固定好的,在实际应用中可以才能够数据库读取数据. 效果图: 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" co

asp.net-easyui datagrid 执行搜索操作后页面仍然显示原数据

问题描述 easyui datagrid 执行搜索操作后页面仍然显示原数据 用的平台是asp.net,初始化不带参数的查询时数据能正常显示,在datagrid上面的搜索栏输入参数 执行搜索功能,表格刷新以后仍然是原来的数据,但后台传过来的json确实是查询参数筛选的数据, 格式也是正确的,但刷新后就是原来的数据,这是因为什么? 解决方案 你怎么知道后台回传的数据是正确的.用开发工具看过了?而且你怎么查询的reload或者load附带参数?$('#xxx').datagrid('reload',{

visual studio-vs2013 用正则搜索 匹配的地方没有黄色背景显示?能设置么

问题描述 vs2013 用正则搜索 匹配的地方没有黄色背景显示?能设置么 如题 不用正则搜索都有黄色的背景显示匹配项 正则搜索我记得在公司也有黄色背景的 怎么在家木有.. 在哪里设置 解决方案 你确认找到了么?是不是你正则没用对根本没找到? 解决方案二: 这个跟普通搜索应该是一样背景色.只是匹配方式不一样.

asp实现限制搜索的关键字的函数

<% '****************************** '函数:CheckQuery(ByVal str) '参数:str ----搜索的字符串 '作者:阿里西西 '日期:2007/7/15 '描述:限制搜索的关键字 '示例:CheckQuery(str) '******************************  Public Function CheckQuery(ByVal str)   Dim FobWords, i, keyword   keyword = str

剖析搜索匹配 也谈淘宝SEO

中介交易 SEO诊断 淘宝客 云主机 技术大厅 前两天看到A5的淘宝SEO培训班开班了,想想开淘宝店的朋友如此之多,也想想自己在淘宝也摸爬滚打了好长时间,对于淘宝SEO,有些心得我想在这里给大家分享一下. 早年开淘宝的现在都发了财,当初那个开着旺旺就有生意的时代已经过去了.到了2012年,淘宝在经过数次变革之后,现在的开店压力越来越大.周围不少朋友也开过淘宝店,刚开始是激情万丈,装修.上传宝贝.店铺推广等等做个不亦乐乎.但一个月过去了一笔生意都没有,最后就悄声无息的放在那懒得管了.其实包括我自己

Android实现自动匹配关键字并且标红功能

本文实例为大家分享了Android匹配关键字标红的具体代码,供大家参考,具体内容如下 1. 单关键字匹配 若只需匹配 搜索内容  可以写的简单一些,代码如下: if (name != null && name.contains(mKeyWord)) { int index = name.indexOf(mKeyWord); int len = mKeyWord.length(); Spanned temp = Html.fromHtml(name.substring(0, index) +

ASP实现Oracle数据记录的分页显示程序

oracle|程序|分页|数据|显示 本文仔细的阐述了利用ASP实现Oracle数据记录的分面显示步骤. 一.引言 通过浏览器访问数据量大的表时需要进行分页.ASP对数据库记录分页显示可以通过ADO对象集Recordset对象来实现.Recordset具有以下几个用于分页显示的属性: PageSize:每页显示的记录数. PageCount:根据用户设定好的PageSize和表中的总记录数,系统自动算出总页数.RecordCount:表中的总记录数. AbsolutePage:表示当前页码.如将

&amp;amp;lt;iframe&amp;amp;gt;&amp;amp;lt;iframe&amp;amp;gt;引用asp页面,在火狐、谷歌浏览器显示不出来

问题描述 html页面中代码:<iframesrc="http://xxx.xxx.xxx.xx/xyz.asp"align="center"marginwidth="0"marginheight="0"scrolling="no"frameborder="0"border="0"framespacing="0"width="228