首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于日期值的彩色编码Gridview

基于日期值的彩色编码Gridview
EN

Stack Overflow用户
提问于 2019-05-30 23:46:38
回答 3查看 104关注 0票数 0

我想让我的Gridview控件显示各种颜色的条件。一个人有个医疗约会。当一天到来的时候,我想要一个绿色的网格视图。我想要红色的日期,当一天已经过去了,从预产期和橙色,就像7天前的医疗日期。我只是设法修复它的绿色,显示当天的医学,但我有困难,因为其他条件。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-31 01:03:14

  1. 使用for循环0到13,并删除重复,或将整行涂上颜色。
  2. 若要获得比date.Now.addDays(7)晚7天的日期并检查是否提前,请与进行比较
  3. 若要检查是否已过一天,请使用date.Now.addDays(-1)
票数 1
EN

Stack Overflow用户

发布于 2019-05-31 01:19:24

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   e.Row.BackColor = System.Drawing.Color.Green;
   e.Row.ForeColor = System.Drawing.Color.White;
票数 1
EN

Stack Overflow用户

发布于 2019-05-31 00:27:01

您可以按照以下方式使用方法后面的代码:

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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>

并对每个单元格使用以下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Function GetColorStyles(ByVal cellindex As String, ByVal DueDate As DateTime) As String
    Dim RES As String = "color:#000000" 'default color
    If DueDate.Date = DateTime.Today Then
        RES = "color:#00FF00"
    ElseIf Day(DateTime.Now) > 1 Then
        RES = "color:#FF0000;"
    End If
    Return RES
End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56390851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文