根据值绑定ListView和格式化数据

时间:2011-03-07 18:02:43

标签: c# asp.net data-binding

我的ListView项目ItemTemplate如下:

<asp:Label runat="server" ID="lblChangeOrders"><%#Eval("sum")%></asp:Label>

我需要的是如果总和为负数我需要将字体颜色设置为RED并删除减号。

2 个答案:

答案 0 :(得分:3)

我会在contorl本身使用DataBinding方法。

示例:

<asp:Label runat="server" ID="lblChangeOrders"
    OnDataBinding="lbChangeOrder_DataBinding"></asp:Label>

protected void lbChangeOrder_DataBinding(object sender, System.EventArgs e)
{
    Label lbl = (Label)(sender);    
    double sum = (double)(Eval("Sum"));
    if (sum < 0)
    {
        sum *= -1;
        lbl.ForeColor = "Red";
    }
    lbl.Text = sum.ToString();     
}

我更喜欢在控件级别执行所有这些类型的tweek,这样您就可以更换控件,并且知道与之相关的所有内容。如果您在ItemDataBound级别执行此操作,则不会对控件本身进行本地化。我很少使用ItemDataBound事件。

答案 1 :(得分:1)

我的第一个想法是使用ItemDataBound event并检查总和。如果它是负数,则指定一个CSS类,将该元素着色为红色。