首先sql语句先这样写:
(1)根据不同状态字体显示不一样的颜色:
<asp:TemplateField HeaderText="执勤状态">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("state") %>' ForeColor='<%# Eval("state").ToString().Trim() == "脱岗" ?System.Drawing.Color.FromName ("#FF0000") : (Eval("state").ToString().Trim() == "正在执勤"?System.Drawing.Color.FromName("#FFCC00"):(Eval("state").ToString().Trim() == "未执勤"? System.Drawing.Color.FromName("#009EEF"):System.Drawing.Color.FromName("#000000"))) %>'></asp:Label>
</ItemTemplate>
<asp:TemplateField HeaderText="执勤状态">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("state") %>' BackColor='<%# Eval("state").ToString().Trim() == "脱岗" ?System.Drawing.Color.FromName ("#FF0000") : (Eval("state").ToString().Trim() == "正在执勤"? System.Drawing.Color.FromName("#FFCC00"):(Eval("state").ToString().Trim() == "未执 勤"? System.Drawing.Color.FromName ("#009EEF"):System.Drawing.Color.FromName("#000000"))) %>'></asp:Label>
</ItemTemplate>>
</asp:TemplateField>
SELECT *,case when Status='0' and UpTime>'" + DateTime.Now + "' then '未执勤' when Status='1' then '正在执勤' when Status='2' then '已执勤' else '脱岗' end as state FROM 表名 ORDER BY ID desc
(1)根据不同状态字体显示不一样的颜色:
<asp:TemplateField HeaderText="执勤状态">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("state") %>' ForeColor='<%# Eval("state").ToString().Trim() == "脱岗" ?System.Drawing.Color.FromName ("#FF0000") : (Eval("state").ToString().Trim() == "正在执勤"?System.Drawing.Color.FromName("#FFCC00"):(Eval("state").ToString().Trim() == "未执勤"? System.Drawing.Color.FromName("#009EEF"):System.Drawing.Color.FromName("#000000"))) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="执勤状态">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("state") %>' BackColor='<%# Eval("state").ToString().Trim() == "脱岗" ?System.Drawing.Color.FromName ("#FF0000") : (Eval("state").ToString().Trim() == "正在执勤"? System.Drawing.Color.FromName("#FFCC00"):(Eval("state").ToString().Trim() == "未执 勤"? System.Drawing.Color.FromName ("#009EEF"):System.Drawing.Color.FromName("#000000"))) %>'></asp:Label>
</ItemTemplate>>
</asp:TemplateField>