2011-03-07 65 views
2

我有一個ItemTemplateListView如下:綁定ListView和格式化數據基於價值

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

我需要的是,如果總和是負的,我需要設置字體顏色爲RED和刪除減號。

回答

3

我會在控制器本身上使用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();  
} 

我喜歡做所有這些類型tweeks在控制水平,使你可以換出的控制,你知道這是依賴於它的一切。如果您在ItemDataBound級別執行此操作,則它不像控制本身那樣本地化。我很少使用ItemDataBound事件。

1

我的第一個想法是使用ItemDataBound event並進行總和檢查。如果它是負數,則分配一個將該元素變爲紅色的CSS類。