Asp.net 如何根据日期值对Gridview进行颜色编码

Asp.net 如何根据日期值对Gridview进行颜色编码,asp.net,vb.net,Asp.net,Vb.net,我希望允许Gridview控件根据条件显示各种颜色。一个人有进行体检的日期。我希望gridview在这一天到来时显示为绿色。我希望从到期日算起一天后日期显示为红色,而在医疗日期前7天显示为橙色。我只是设法将它修复为绿色,显示当天的医疗状况,但我对其他情况有困难 这就是我现在拥有的。当我根据到期日和当前日期将行更改为绿色时,If语句的第一部分工作,但我不知道如何为上述其他条件设置If语句。请协助 If e.Row.RowType = DataControlRowType.DataRow Then

我希望允许Gridview控件根据条件显示各种颜色。一个人有进行体检的日期。我希望gridview在这一天到来时显示为绿色。我希望从到期日算起一天后日期显示为红色,而在医疗日期前7天显示为橙色。我只是设法将它修复为绿色,显示当天的医疗状况,但我对其他情况有困难

这就是我现在拥有的。当我根据到期日和当前日期将行更改为绿色时,If语句的第一部分工作,但我不知道如何为上述其他条件设置If语句。请协助

 If e.Row.RowType = DataControlRowType.DataRow Then


            Dim row As DataRow = (CType(e.Row.DataItem, DataRowView)).Row
            Dim DueDate As DateTime = row.Field(Of DateTime)(7)

            If DueDate.Date = DateTime.Today Then

                e.Row.Cells(0).BackColor = System.Drawing.Color.Green
                e.Row.Cells(0).ForeColor = System.Drawing.Color.White

                e.Row.Cells(1).BackColor = System.Drawing.Color.Green
                e.Row.Cells(1).ForeColor = System.Drawing.Color.White

                e.Row.Cells(2).BackColor = System.Drawing.Color.Green
                e.Row.Cells(2).ForeColor = System.Drawing.Color.White

                e.Row.Cells(3).BackColor = System.Drawing.Color.Green
                e.Row.Cells(3).ForeColor = System.Drawing.Color.White

                e.Row.Cells(4).BackColor = System.Drawing.Color.Green
                e.Row.Cells(4).ForeColor = System.Drawing.Color.White

                e.Row.Cells(5).BackColor = System.Drawing.Color.Green
                e.Row.Cells(5).ForeColor = System.Drawing.Color.White

                e.Row.Cells(6).BackColor = System.Drawing.Color.Green
                e.Row.Cells(6).ForeColor = System.Drawing.Color.White

                e.Row.Cells(7).BackColor = System.Drawing.Color.Green
                e.Row.Cells(7).ForeColor = System.Drawing.Color.White

                e.Row.Cells(8).BackColor = System.Drawing.Color.Green
                e.Row.Cells(8).ForeColor = System.Drawing.Color.White

                e.Row.Cells(9).BackColor = System.Drawing.Color.Green
                e.Row.Cells(9).ForeColor = System.Drawing.Color.White

                e.Row.Cells(10).BackColor = System.Drawing.Color.Green
                e.Row.Cells(10).ForeColor = System.Drawing.Color.White

                e.Row.Cells(11).BackColor = System.Drawing.Color.Green
                e.Row.Cells(11).ForeColor = System.Drawing.Color.White

                e.Row.Cells(12).BackColor = System.Drawing.Color.Green
                e.Row.Cells(12).ForeColor = System.Drawing.Color.White

                e.Row.Cells(13).BackColor = System.Drawing.Color.Green
                e.Row.Cells(13).ForeColor = System.Drawing.Color.White


            ElseIf Day(DateTime.Now) > 1 Then


                e.Row.Cells(0).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(0).ForeColor = System.Drawing.Color.White

                e.Row.Cells(1).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(1).ForeColor = System.Drawing.Color.White

                e.Row.Cells(2).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(2).ForeColor = System.Drawing.Color.White

                e.Row.Cells(3).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(3).ForeColor = System.Drawing.Color.White

                e.Row.Cells(4).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(4).ForeColor = System.Drawing.Color.White

                e.Row.Cells(5).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(5).ForeColor = System.Drawing.Color.White

                e.Row.Cells(6).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(6).ForeColor = System.Drawing.Color.White

                e.Row.Cells(7).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(7).ForeColor = System.Drawing.Color.White

                e.Row.Cells(8).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(8).ForeColor = System.Drawing.Color.White

                e.Row.Cells(9).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(9).ForeColor = System.Drawing.Color.White

                e.Row.Cells(10).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(10).ForeColor = System.Drawing.Color.White

                e.Row.Cells(11).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(11).ForeColor = System.Drawing.Color.White

                e.Row.Cells(12).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(12).ForeColor = System.Drawing.Color.White

                e.Row.Cells(13).BackColor = System.Drawing.Color.Orange
                e.Row.Cells(13).ForeColor = System.Drawing.Color.White

            End If

        End If


您可以按如下方式使用代码隐藏方法:

在GridView中添加模板列,如下所示:

<asp:TemplateField HeaderText="Due Date">
    <ItemTemplate>
        <asp:Label ID="Label4" runat="server" Text='<%# Eval("DueDate") %>'
            Style='<%# GetColorStyles(0, Eval("DueDate"))%>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

您可以按如下方式使用代码隐藏方法:

在GridView中添加模板列,如下所示:

<asp:TemplateField HeaderText="Due Date">
    <ItemTemplate>
        <asp:Label ID="Label4" runat="server" Text='<%# Eval("DueDate") %>'
            Style='<%# GetColorStyles(0, Eval("DueDate"))%>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>
  • 使用for循环0到13,删除重复或为整行上色
  • 要获取7天之后的日期并检查是否更早,请与
    date.Now.addDays(7)
  • 要检查是否已过一天,请使用
    date.Now.addDays(-1)
  • 使用for循环0到13,删除重复或为整行上色
  • 要获取7天之后的日期并检查是否更早,请与
    date.Now.addDays(7)
  • 要检查是否已过一天,请使用
    date.Now.addDays(-1)

  • 如果必须使整行着色相同,则不需要按单元格着色。请使用

       e.Row.BackColor = System.Drawing.Color.Green;
       e.Row.ForeColor = System.Drawing.Color.White;
    

    如果必须使整行着色相同,则不需要按单元格着色。请使用

       e.Row.BackColor = System.Drawing.Color.Green;
       e.Row.ForeColor = System.Drawing.Color.White;
    

    非常感谢,这对我有好处@Devcon。你只是把一个不相关的答案标记为答案而不是我的吗?非常感谢,这对我有好处@Devcon。你只是把一个不相关的答案标记为答案而不是我的吗?谢谢你的专业知识@Skaria Thomas,这让我的代码更高效。谢谢Tevin。如果这对你有帮助,请投票给我答案,因为这将是我的动力。感谢你的专业知识@Skaria Thomas,这使我的代码更加高效。谢谢Tevin。如果这对你有帮助,请投票给我答案,因为这将是我的动力。