在代码隐藏中是否有一种方法可以在呈现时在ItemDataBound事件(asp:Label
和li
元素之间)中的asp:Label
周围添加强元素?
标记
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<li>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("ProductName") %>'></asp:Label>
</li>
</ItemTemplate>
</asp:Repeater>
csharp代码,这是我希望有一种方法来添加强元素。
void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label test = (Label)e.Item.FindControl("Label1");
}
}
我知道有更简单的方法可以做到这一点,但我特别不幸地需要这样做。
答案 0 :(得分:1)
这看起来非常hacky并且实际上并没有给你一个strong
控件可以使用,但我想这样的事情可能有用:
void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label test = (Label)e.Item.FindControl("Label1");
Literal literal1 = new Literal();
literal1.Text = "<strong>";
e.Item.Controls.AddAt(e.Item.Controls.IndexOf(test), literal1);
Literal literal2 = new Literal();
literal2.Text = "</strong>";
e.Item.Controls.AddAt(e.Item.Controls.IndexOf(test) + 1, literal2);
}
}
答案 1 :(得分:0)
不容易。据我所知,没有<asp:Strong>
标签。这里最简单的方法就是将标记放在代码中。
但是,如果您需要选择性地实施强标记,可以通过将标签上的css设置为font-weight: bold
(与包装强标记中的内容相同)或声明性地完成相同的操作。通过设置标签的CssClass属性,即
Label1.CssClass = "myStrongCssClass";
答案 2 :(得分:0)
在后面的代码中,您需要在模板中找到标签 Label1.Font.Bold = true;