我有一个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>
答案 0 :(得分:1)
如果将其设为TemplateField,则可以对数据进行更多控制,然后可以使用三元运算符应用一些逻辑。
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<%# Convert.ToDateTime(Eval("DateField")) < DateTime.Now ? "Expired" : "Active" %>
</ItemTemplate>
</asp:TemplateField>