繁体   English   中英

如何在asp:超链接文本中以粗体显示某些选定单词

[英]How to display certain selected words bolder in asp:hyperlink text

我在.aspx上有一个asp:repeater控件,在后面的代码中,我将其数据源绑定到KeyValuePair[]<Literal,String>类型的Collection上。 我选择文字,以便可以用<strong><b> html标签将文字中的所选单词括起来。 好吧,我成功地做到了,但是我没有找到一种在asp:repeaterasp:hyperlink的Text部分显示文字文本的方法。

我的.aspx代码如下:

<asp:Repeater ID="repLinks" runat="server">
       <ItemTemplate>
           <div onclick="window.open('<%# ((KeyValuePair<Literal,string>)Container.DataItem).Value %>','_blank');">
               <div>
                   <asp:HyperLink ID="HyperLink1" runat="server"  NavigateUrl="<%# ((KeyValuePair<Literal,string>)Container.DataItem).Value %>" Text="<%#((KeyValuePair<Literal,string>)Container.DataItem).Key.Text %>"
                       Font-Size='Large' ForeColor='Blue' Font-Names="Open Sans" CssClass="linkstyle" />
                   <br />
               </div>
           </div>
       </ItemTemplate>
   </asp:Repeater>

我需要有关如何在asp:Hyperlink显示.Key.Text部分的帮助。

我添加了keyValuePair,如下所示:

char[] seperator = { ' ' };
String[] explodedString = Results1[index].Key.Split(seperator);
List<String> Query= new List<string>(TextBox1.Text.Trim().ToLowerInvariant().Split(seperator,StringSplitOptions.RemoveEmptyEntries));
for (int i = 0; i < explodedString.Length; i++)
    {
       if (Query.Contains(explodedString[i].ToLowerInvariant()) == true)
          {
               explodedString[i] = "<strong>" + explodedString[i] + "<strong>";
          }
    }
 Literal temp = new Literal();
 temp.Text = explodedString.ToString();
 TryCurrentWindow[index] = new KeyValuePair<Literal, string>(temp, Results1[index].Value);

这里TryCurrentWindow是KeyValuePair [], explodedstring[]是由'' char 拆分的文本字符串,我想修改,而Query []是我的keyWords列表

问题

  1. 您没有关闭<strong>标签</strong>

  2. 您只需对string[]数组执行ToString()

更新了这一行:

 explodedString[i] = "<strong>" + explodedString[i] + "</strong>";

还要更改以下代码:

Literal temp = new Literal();
temp.Text = explodedString.ToString();

与此

Literal temp = new Literal();
temp.Text =  string.Join(" ", explodedString); 

当在string[]数组中修改索引时。 您需要加入数组才能获取修改后的string[]数组。

更新的代码段

char[] seperator = { ' ' };
String[] explodedString = Results1[index].Key.Split(seperator);
List<String> Query= new List<string>(TextBox1.Text.Trim().ToLowerInvariant().Split(seperator,StringSplitOptions.RemoveEmptyEntries));

for (int i = 0; i < explodedString.Length; i++)
{
    if (Query.Contains(explodedString[i].ToLowerInvariant()) == true)
    {
       explodedString[i] = "<strong>" + explodedString[i] + "</strong>"; //changed
    }
}

Literal temp = new Literal();
temp.Text = string.Join(" ", explodedString); //changed 
TryCurrentWindow[index] = new KeyValuePair<Literal, string>(temp, Results1[index].Value);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM