2010-05-17 71 views
0

嘿傢伙我試圖做一些非常簡單的..我檢查數據列中的數據列,如果它是> 0我想要項目在數據列表中的背面顏色是綠色如果< 0保持透明......datalist itemdatabound事件有條件改變項目bg顏色的條件

if (e.Item.ItemType == ListItemType.Item || 
     e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     DataRowView drv = (DataRowView)(e.Item.DataItem); 
     int rating = int.Parse(drv.Row["rating"].ToString()); 

     if (rating > 0) 
     { 
      e.Item.BackColor = System.Drawing.Color.Green; 
     } 

    } 

我已經調試臺階的貫通,它的命中所有的顏色正好是不會改變的條件。我知道它必須是一些簡單的我只是看不到它。

回答

2

您需要使用e.Item.FindControl實例化要更改其背景顏色的控件實例。

if (e.Item.ItemType == ListItemType.Item || 
    e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     DataRowView drv = (DataRowView)(e.Item.DataItem); 
     int rating = int.Parse(drv.Row["rating"].ToString()); 

     if (rating > 0) 
     { 
      Label lbl = (Label)e.Item.FindControl("yourLabelIDHere"); 
      lbl.BackColor = System.Drawing.Color.Green; 

     } 
    } 
+0

我想改變數據列的行顏色.. – jr3 2010-05-18 16:40:44

+0

你需要用DIV包圍你的ItemTemplate內容,並向DIV添加一個runat =「server」,並確保有一個ID。 然後,在ItemDatabound上,當您的條件得到滿足時, div.Attributes.Add(「style」,「background-color:Green;」); – TheGeekYouNeed 2010-05-18 17:14:44

1

把這個代碼放在哪裏?它需要在OnRowDataBound()事件中。看起來你可能會把上面的內容放在OnItemDataBound()之內。

+0

嘿大衛我正在使用DataList,我想你在想一個gridview?雖然感謝您的嘗試! – jr3 2010-05-18 16:46:33

+0

對不起,錯過了那一點!很高興現在正在工作。 – 2010-05-18 17:51:21