c# - 如何突出显示下拉列表中的搜索文本

标签 c# asp.net css

我的网页中有一个 Textbox 和一个下拉列表。当我在 TextBox 中输入文本并且它的 TextChanged 事件被触发时,包含该文本的元素被加载到下面的另一个下拉列表中。我已将下拉状态设置为 Openloadondemand to 是的
我只需要在下拉列表项中突出显示该搜索文本,但我做不到。

我有来自 here 的代码我尝试在我的页面中实现它。

代码是

样式.css

<style type="text/css">
.highlight 
{
text-decoration:none; font-weight:bold;color:black; background:yellow;

} 

cs代码

 protected void txtItemCode_TextChanged(object sender, EventArgs e)
   {
     //my code
     ddl_ItemName.OpenDropDownOnLoad = true;
     HighlightText(itemtext);
   }

 public string HighlightText(string InputTxt)
   {
     Regex RegExp = new Regex(InputTxt.Replace(" ", "|").Trim(),     RegexOptions.IgnoreCase);
     return RegExp.Replace(InputTxt, new MatchEvaluator(ReplaceKeyWords));
   }
 public string ReplaceKeyWords(Match m)
   {
    return ("<span class=highlight>" + m.Value + "</span>");
   }

我的设计是

<table>
   <tr>
     <td class="label">Item Code : </td>
     <td style="width: 180px;" class="field">
       <telerik:RadTextBox ID="txtItemCode" AutoPostBack="true" runat="server" 
        ontextchanged="txtItemCode_TextChanged" >
       </telerik:RadTextBox>
     </td> 
  </tr>
  <tr>
   <td class="label">Item Name : </td>
   <td class="field">
     <telerik:RadComboBox ID="ddl_ItemName" AutoPostBack="true" runat="server"
       EmptyMessage="Choose an Item"
       EnableLoadOnDemand="True" MarkFirstMatch="true" 
       onselectedindexchanged="ddl_ItemName_SelectedIndexChanged" >               
     </telerik:RadComboBox>
  </td>
 </tr>
</table>

最佳答案

如果我的理解是正确的,那么您正在尝试实现一个自动完成文本字段,该字段向用户显示可供选择的选项下拉列表。用户输入的关键字查询在下拉列表的每个列表项中始终以粗体显示。

基于以上理解,您真正想要的是确保您的自动完成选项下拉列表包含一个 span 或用户在文本字段。

请看下面的例子:

HTML(下面的无序列表是由 JavaScript 在 TextChanged 上动态生成的)

<input type="text" value="Something">
<ul id="auto-complete">
    <li>
        <a href="#"><span>Something</span> Borrowed</a>
    </li>
    <li>
        <a href="#">There's <span>something</span> about Mary</a>
    </li>
    <li>
        <a href="#"><span>Something</span>'s Gotta Give</a>
    </li>
</ul>

CSS

#auto-complete li span {
    font-weight: bold;
}

检查以下 JSFiddle 以查看实际的样式:http://jsfiddle.net/hadynz/AE7TE/

关于c# - 如何突出显示下拉列表中的搜索文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20988452/

相关文章:

c# - 如何仅在 C# 控制台应用程序中生成 .csproj 项目文件?

asp.net - 向 ASP.NET Gridview 添加动态列

ASP.NET 确定在页面加载事件中的 updatepanel 内单击了哪个按钮

c# - 如果 href 为空则隐藏 li 元素

html - 调整页面大小时防止div移动

html - 更改静态(列表项为图标

c# - 在字典的 linq 迭代过程中,什么可能导致堆栈溢出?

c# - TransactionInterop.GetDtcTransaction() 抛出 ArgumentNullException ... 有时

c# - 使用超时运行 Parallel ForEach

wordpress 上的 CSS 在使用 Chrome 或 Safari 时不正常