在spanData周围的ItemDataBound中添加强元素

时间:2013-07-05 19:27:53

标签: c# asp.net

在代码隐藏中是否有一种方法可以在呈现时在ItemDataBound事件(asp:Labelli元素之间)中的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");

    }
}

enter image description here

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

3 个答案:

答案 0 :(得分:1)

这看起来非常h​​acky并且实际上并没有给你一个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;