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