【发布时间】:2014-01-21 14:13:52
【问题描述】:
我有一个这样的网格视图
<asp:GridView ID="GridView1" runat="server"
DataSourceID="SqlDataSource1">
</asp:GridView>
我将它绑定在 page_load 上
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.SelectCommand = "select * from table"
}
在桌子上我有一个字段“日期”
+-----+
|date |
+-----+
|date1|
+-----+
|date2|
+-----+
我想做那个控制---> if date1
我是这样做的
protected void GridViewServicesList_RowDataBound(object sender, GridViewRowEventArgs e)
{
DateTime date =
Convert.ToDateTime(e.Row.Cells[indexOfDateField].Text);//returns null!!!
if(date < DateTime.Now)
{
e.Row.BackColor = Color.Red;
}
}
这不起作用,我该怎么办? 首先我什至无法访问日期。我的意思是变量 DateTime 日期为空... 顺便一提 这不是我真正的代码,我写它是为了基本理解。
【问题讨论】:
-
尝试设置单元格的背景颜色而不是行
-
但日期为空,所以也不能这样做,我无法访问“日期”。也许我是在错误的事件??
-
您确定
date为空吗?还是DateTime date = Convert.ToDateTime(e.Row.Cells[indexOfDateField].Text);产生错误? -
是的,我确定它是 null 没有错误。
-
可以在pre-render事件中遍历采集和更改。