1

我在我的 asp.net 项目中使用 gridview 来查看和修改数据库中的一些记录。数据库有两列:start_date 和 end_date。创建新记录时,这些列包含空值,但稍后可以使用 gridview update 命令对其进行修改。

在 gridview 中,我有两个模板字段(名称为 start_date 和 end_date),其中放置了两个日历控件。单击 gridview 的更新链接后,由于 null 值绑定到日历,它总是返回错误。我已经使用这个辅助函数来解决它:

protected DateTime ReplaceNull(Object param)
{
    if (param.Equals(DBNull.Value))
    {
        return DateTime.Now;
    }
    else
    {
        return Convert.ToDateTime(param);
    }
}

并在日历控件的 SelectedDate 中使用了这两个自定义表达式:

ReplaceNull(Eval("start_date"))
ReplaceNull(Eval("end_date"))

问题是在选择日期时绑定日历的双向数据不会更新数据库表。有什么解决方法吗?或者,将不胜感激更好的解决方案。

4

1 回答 1

0

我不知道为什么在插入新记录时让它们为空,但我认为有很多方法可以解决这个问题。

其中之一RowDataBound如果发生Gridview

 protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
               if (e.Row.Cells[1] == null) //the index of the start_date
                 {
                    e.Row.Cells[1].Text = DateTime.Now.ToString(); // in your case you will  make the selected date of the calender(through casting to calender) with the value you need.
                 }

            }
        }

或者:你可以捕捉到异常,你会在你的更新按钮中通过

try and catch block.

于 2011-05-10T11:15:44.367 回答