日期:2014-05-18  浏览次数:20435 次

怎样让搜索出来的关键字变红色?
刚刚做完了公司布置的任务,上司检查时说我的搜索做的不好,要做成像百度那样,关键字显示成红色的,可想了这么长时间,没有思路,网上搜了些,都是Replace()方法的用法。
我搜索的结果是放在Datalist中的绑定的数据是用ds接收的。请问有没有什么好方法,让我把这个功能实现了?谢谢了。

------解决方案--------------------
把要描红的字拿出来 replace成<red>以前的字</red>
------解决方案--------------------
str 是要变得字符串 "关键字" 是你要变颜色的部分<font color=red>关键字 </font> 是变完后的样子
------解决方案--------------------
你在页面CS中写个方法 public string show(string obj){..replace关键字...}
在页面绑定的时候调用这个方法就可以了。比如 <%#show(Eval("title"))%>
------解决方案--------------------
你在datalist的模板列显示标题的时候用自定义函数再处理绑定的信息。
如:

<%#ReplaceStr(Eval("Title"))%>


public static string ReplaceStr(string strTitle)


string strReplace=@"<font color=red>"+strSearchKey+"</font>" ; //StrSearchKey为外界搜索关键字
strTitle.Replace(strSearchKey,strReplace);

return strTitle;


手动临时写了个样本,没测试过。具体个人想法是这样。参考看看
------解决方案--------------------
C# code

//aspx页面:
<%#wsp(Eval("ss").ToString())%>

//cs文件:
    public string wsp(string result)
    {
        if (TextBox1.Text.Trim() != "")//注:TextBox1.Text.Trim() 为搜索关键字
        {
            result = result.Replace(TextBox1.Text.Trim(), "<font color='red'>" + TextBox1.Text.Trim() + "</font>");
        }
        return result;
    }

------解决方案--------------------
手动写个函数:
public string content(object show)
{
string content = (string)show;
content = content.Replace("关键字", "<font color='red'>关键字</font>");
return content;
}
绑定的数据:<%#content(Eval("ziduan"))%>