Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向sql查询中case语句中设置的数据添加样式_C#_Sql_Gridview_Case - Fatal编程技术网

C# 向sql查询中case语句中设置的数据添加样式

C# 向sql查询中case语句中设置的数据添加样式,c#,sql,gridview,case,C#,Sql,Gridview,Case,我希望在gridview的Status列中修改每个结果的颜色,是否仍要使用查询中的case语句来执行此操作,或者我必须更改此操作 基本上,如果它正在等待它的红色,如果它正在审查它的橙色,如果它完成它的绿色。用当前代码实现这一点的最佳方法是什么 我在C#的Visual Studio中做所有事情 我希望它看起来像这样: SQL语句背后的代码,我在其中声明状态变量: SqlCommand mySqlCommand = new SqlCommand(@"SELECT W.ID, W.Name,

我希望在gridview的Status列中修改每个结果的颜色,是否仍要使用查询中的case语句来执行此操作,或者我必须更改此操作

基本上,如果它正在等待它的红色,如果它正在审查它的橙色,如果它完成它的绿色。用当前代码实现这一点的最佳方法是什么

我在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,
等等

正面:

<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>

您可以使用事件来实现这一点。根据文本设置单元格颜色

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;
        };

     }
  }

你我的朋友真是天赐之物!这是完美的,效果很好。感谢您的快速、即时回复!