asp.net---高亮顯示搜尋關鍵字
阿新 • • 發佈:2019-02-10
前端程式碼
<asp:DataList ID="DataList1" runat="server" > <ItemTemplate> <li class=Sub> <a href="Leave.aspx?Name=<%#Eval("Uid")%>"><span><%#Eval("Uid") %></span></a> <ul class=list-unstyled> <li> <a href="ShowWords.aspx?subjectID=<%#Eval("ID")%>"> <%#HightLight((string)Eval("Subject"),txtSearch) %><!--這裡使用自定義方法實現高亮顯示搜尋關鍵字--> </a> </li> <li class=DateTime> <%#Eval("leaveTime")%> </li> </ul> </li> </ItemTemplate> </asp:DataList>
後臺程式碼:
protected string HightLight(string strKey,string keyword)//strKey為搜尋出的內容,keyword為搜尋的關鍵字 { if (keyword == ""||keyword==null)//如果搜尋關鍵字為空 { return strKey; } if(strKey.IndexOf(keyword.Substring(keyword.IndexOf("'") + 1, keyword.LastIndexOf("'") - 1))>-1)//如果搜尋的關鍵字在原文中存在(這裡區分大小寫) { //替換原文中的關鍵字 string strReturn = strKey.Replace(keyword.Substring(keyword.IndexOf("'") + 1, keyword.LastIndexOf("'") - 1), "<span class='hightlightTxtSearch'>" + keyword.Substring(keyword.IndexOf("'") + 1, keyword.LastIndexOf("'") - 1) + "</span>"); return strReturn; } else if(strKey.ToUpper().IndexOf(keyword.Substring(keyword.IndexOf("'") + 1, keyword.LastIndexOf("'") - 1).ToUpper()) >-1)//將原文與關鍵字都變為大寫,如果能夠匹配 { //替換原文中的關鍵字 keyword = strKey.Substring(strKey.ToUpper().IndexOf(keyword.Substring(keyword.IndexOf("'") + 1, keyword.LastIndexOf("'") - 1).ToUpper()), keyword.Substring(keyword.IndexOf("'") + 1, keyword.LastIndexOf("'") - 1).Length); string strReturn = strKey.Replace(keyword, "<span class='hightlightTxtSearch'>" + keyword+ "</span>"); return strReturn; } else { return strKey; } }
預覽效果: