如果gridview中的date列(A列)是今天的日期,则显示B列中的过期

时间:2019-01-20 14:40:27

标签: c# asp.net datatable webforms

我有一个gridview从存储过程中获取数据。列A是日期字段。 B列的文本处于活动状态(适用于所有行)。但是,我想根据日期将“活动”(在状态栏中)的文本更改为“过期”-因此,如果它是今天的日期或更早,则显示过期。我知道我可以在导入到表中之前在SQL Server上执行作业以更改列。但是,如果可能的话,我只想更改文本,不要更改数据库。因此,我将如何操作活动列以显示基于今天的日期已过期。

con.Open();
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
   DataTable dt = new DataTable();                                
   sda.Fill(dt);
   tblMytable.DataSource = dt;
   tblMytable.DataBind();
   con.Close();
}

网络表单:

<asp:GridView ID="tblMytable" runat="server" AutoGenerateColumns="false">
<Columns>                
    <asp:BoundField DataField="DateField" HeaderText="Date" />
    <asp:BoundField DataField="Status" HeaderText="Status" />

</Columns>
</asp:GridView>

1 个答案:

答案 0 :(得分:1)

如果将其设为TemplateField,则可以对数据进行更多控制,然后可以使用三元运算符应用一些逻辑。

<asp:TemplateField HeaderText="Status">
    <ItemTemplate>
        <%# Convert.ToDateTime(Eval("DateField")) < DateTime.Now ? "Expired" : "Active" %>
    </ItemTemplate>
</asp:TemplateField>