我的.aspx上有一个asp:repeater控件,在后面的代码中我将其数据源绑定到类型为KeyValuePair[]<Literal,String>
的Collection。我选择了文字,以便我可以使用<strong>
或<b>
html标记在文字文本中包围所选单词。好吧,我成功了,但我找不到在asp:hyperlink
的{{1}}文本部分显示文字文字的方法
我的.aspx代码如下:
asp:repeater
我需要有关如何在<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>
中显示.Key.Text
部分的帮助。
我添加了keyValuePair,如下所示:
asp:Hyperlink
此处 TryCurrentWindow 是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);
是由explodedstring[]
分割的文本字符串,我要修改,而Query []是我的keyWords列表
答案 0 :(得分:0)
问题:
您没有关闭此<strong>
的{{1}}代码。
您只是在执行</strong>
到ToString()
数组。
更新了这一行:
string[]
同时更改以下代码:
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[]