2011-01-22 55 views
0

我试图改变一个DataList控件的行颜色...Datalist中更改行的颜色使用ItemDataBound事件问题

 <asp:DataList ID="dlTrades" Width="100%" 
      RepeatDirection="Horizontal" 
      RepeatColumns="6" runat="server" 
      DataSourceID="objTrds" 
      OnItemDataBound="dlTrades_ItemDataBound"> 
      <ItemTemplate> 
      <table> 
        <tr> 
        <td> 
         <b> 
         <%# DataBinder.Eval((System.Data.DataRowView)Container.DataItem, "Status") %> 
         </b> 
        </td> 
        </tr> 
       </table> 
       <table> 
        <tr> 
         <td><%# DataBinder.Eval((System.Data.DataRowView)Container.DataItem, "Hold") %> 
         </td> 
        </tr> 
       </table> 
      </ItemTemplate> 
     </asp:DataList> 

具有以下ItemDataBound事件:

protected void dlTrades_ItemDataBound(object sender, DataListItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     System.Data.DataRowView drv = (System.Data.DataRowView)(e.Item.DataItem); 

     string hld = (string)drv.Row["Hold"].ToString(); 

     if (hld == "Trade") 
     { 
      e.Item.BackColor = System.Drawing.Color.LightGreen; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 

     if (hld == "Hold") 
     { 
      e.Item.BackColor = System.Drawing.Color.LightGray; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 

     System.Data.DataRowView drv2 = (System.Data.DataRowView)(e.Item.DataItem); 

     string stat = (string)drv2.Row["Status"].ToString(); 

     if (stat == "Open") 
     { 
      e.Item.BackColor = System.Drawing.Color.LightGreen; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 
     if (stat == "Filled") 
     { 
      e.Item.BackColor = System.Drawing.Color.Gold; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 

     if (stat == "Closed") 
     { 
      e.Item.BackColor = System.Drawing.Color.IndianRed; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 

    } 
} 

的问题是,无论是最后一组背景颜色做两行......我如何分隔行,使一行是'状态'的颜色,一行是'保持'颜色?

我试着使用div标签作为提到上一个职位,但divID.Attributes.Add(定式:颜色)没有编译...

感谢,

+0

我想我会使用一个Label控件,而不是使用一些奇怪的div标签引用行来使用前面的/标准的方法来做到这一点。 – CraigJSte 2011-01-22 16:04:32

回答

0

使用Label控件和扩大其100列宽的百分比对此很有效。