0

有没有办法在代码隐藏中在渲染时asp:Label在 ItemDataBound 事件(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");

    }
}

在此处输入图像描述

我知道有更简单的方法可以做到这一点,但不幸的是我需要这样做。

4

3 回答 3

1

这看起来很老套,实际上并没有给你一个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);
    }
}
于 2013-07-05T21:40:34.573 回答
0

不容易。据我所知,没有<asp:Strong>标签。在这里做的最简单的事情就是把标签放在你的代码中。

但是,如果您需要选择性地实现强标签,则可以通过将标签上的 css 设置为font-weight: bold(这与在强标签中包装内容相同)或通过设置标签的 CssClass 属性以声明方式来完成相同的事情, IE

Label1.CssClass = "myStrongCssClass";

于 2013-07-05T19:38:09.013 回答
0

在后面的代码中,您需要在模板中找到标签,然后 Label1.Font.Bold = true;

于 2013-07-05T19:42:49.483 回答