0

我正在寻找修改我的网格视图的状态列中每个结果的颜色,无论如何使用我的查询中的案例语句来执行此操作还是我必须更改它?

基本上,如果它是 Pending 它的红色,如果它是 In Review,它是橙色的,如果它完成它是绿色的。使用当前代码完成此操作的最佳方法是什么?

我在 C# 中的 Visual Studio 中做所有事情。

我希望它看起来像这样:

在此处输入图像描述

我声明状态变量的 SQL 语句后面的代码:

SqlCommand mySqlCommand = new SqlCommand(@"SELECT W.ID, W.Name, 
                CASE W.Type
                    WHEN 1 then 'U.S.'
                    WHEN 2 then 'Foreign'
                end as Type,
                CASE W.Status
                    WHEN 0 then 'Pending'
                    WHEN 1 then 'In Review'
                    WHEN 2 then 'Complete'
                end as Status,

..ETC

正面:

<asp:GridView runat="server" ID="GridView1" CssClass="gridview" BorderColor="#E8CC6B"
        BorderStyle="Solid" BorderWidth="1px" Font-Size="Medium" HorizontalAlign="Left"
        AlternatingRowStyle-CssClass="even" Width="750px" AutoGenerateColumns="False" 
            AllowPaging="True" onpageindexchanging="GridView1_PageIndexChanging" 
            PageSize="25" ShowFooter="True" OnRowDataBound="GridView1_RowDataBound"> <PagerStyle CssClass="cssPager" /><FooterStyle CssClass="cssFooter" />
        <AlternatingRowStyle CssClass="even"></AlternatingRowStyle>
        <Columns>
            <asp:BoundField DataField="ID" HeaderText="ID" />
            <asp:BoundField DataField="Name" HeaderText="Name" />
            <asp:BoundField DataField="Type" HeaderText="Type" />
            <asp:BoundField DataField="Status" HeaderText="Status" />
            </Columns>
    </asp:GridView>
4

1 回答 1

2

您可以使用GridView.RowDataBound事件来实现这一点。在文本的基础上设置单元格颜色。

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      switch (e.Row.Cells[3].Text)
        {
            case "Panding":
                e.Row.Cells[3].ForeColor = System.Drawing.Color.Red;
                break;
            case "Complete":
                e.Row.Cells[3].ForeColor = System.Drawing.Color.Green;
                break;
            case "In Review":
                e.Row.Cells[3].ForeColor = System.Drawing.Color.Yellow;
                break;
            default:
                e.Row.Cells[3].ForeColor = System.Drawing.Color.Black;
                break;
        };

     }
  }
于 2013-04-04T19:45:34.797 回答