2009-11-24 40 views
2

我有一個ASP.net 的GridView該吐出數據的三列:(ORDERNUMBER,OrderStatus,和訂購日期)。基於設置的GridView值ItemStyle前景色上行/列值

我想設置OrderStatus Field Value = RED IF the status = "Cancelled"

我不知道如何來看待這一領域的價值輸出的每一行並確定狀態將被取消......那麼,如果它被設置顏色到RED。

ASP.net的GridView:

<asp:GridView ID="gvOrders" 
        runat="server" 
        AutoGenerateColumns="False" 
        GridLines="None" 
        AllowPaging="true" 
        CssClass="mGrid" 
        PagerStyle-CssClass="pgr" 
        AlternatingRowStyle-CssClass="alt" > 
      <Columns> 
      <asp:BoundField DataField="OrderNumber" HeaderText="OrderNumber" SortExpression="OrderNumber" /> 
      <asp:BoundField DataField="OrderStatus" HeaderText="OrderStatus" SortExpression="OrderStatus" /> 
      <asp:BoundField DataField="OrderDate" HeaderText="OrderDate" SortExpression="OrderDate" /> 
      </Columns> 
     </asp:GridView> 

C#數據綁定:

protected void navOrders_Onclick(object sender, BulletedListEventArgs e) 
{ 
    switch(e.Index) 
    { 
     case 0: //Orders 
      DataTable dt = Procedures.GetOrderData(); 

      gvOrders.DataSource = dt; 
      gvOrders.DataBind(); 

      break; 
    } 

} 

任何建議,將不勝感激。

感謝一如既往,

回答

2

您可以設置OrderStatus列的前景色在RowDataBound事件。您可以指定表格單元格的索引,在您的情況下,OrderStatus的索引爲1.

protected void gvOrders_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     if (e.Row.Cells[1].Text == "Cancelled") 
     { 
      e.Row.Cells[1].ForeColor = System.Drawing.Color.Red; 
     } 
    } 
} 
+0

我能夠通過添加RowType檢查來獲得此功能....謝謝! 如果(e.Row.RowType == DataControlRowType.DataRow) { 如果(e.Row.Cells [1]。文本== 「取消」) { e.Row.Cells [1] .ForeColor = System.Drawing.Color.Red; } } – scarpacci 2009-11-25 03:33:43

+0

我已將行類型檢查添加到答案,謝謝。 – Phaedrus 2009-11-25 03:42:05