无法根据gridview中的其他列更新列

时间:2011-05-27 16:51:06

标签: c# asp.net gridview

我有一个gridview,网格有5个不同的列ID,FirstName,LastName,DateOfBirth和Age,gridview可以编辑,所以我想根据DateOfBirth列更新Age,所以我在OnRowBound函数中编写了必要的功能。当我执行网格视图页面时,我得到“字符串未被识别为有效的日期时间”。

这是OnRowBound的功能

 protected void UserInfoGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DateTime DOBOnGrid = DateTime.ParseExact(e.Row.Cells[3].Text,"MM/dd/yyyy",null);
            Label tAge = (Label)e.Row.Cells[4].FindControl("txtAge");

            TimeSpan ts = DateTime.Now - DOBOnGrid;
            int CurrAge = ts.Days / 365;
            tAge.Text = CurrAge.ToString();
        }
    }

  <asp:GridView ID="UserInfoGrid" runat="server" AutoGenerateColumns="False" CellPadding="3"
            DataKeyNames="userid" DataSourceID="DataSrcUserInfo"
            AllowPaging="True" OnRowDataBound="UserInfoGrid_RowDataBound"
            OnRowUpdated="Update" OnRowDeleted="Delete" PageSize="10" >

任何人都可以帮助我吗

谢谢,

1 个答案:

答案 0 :(得分:1)

首先,您显示的代码不应该在RowUpdating事件处理程序中吗?至于你得到的错误,很明显是由于生日单元格中的格式化字符串错误。

你检查过空字符串吗?我猜你甚至在屏幕上的GridView渲染之前就得到了异常,因为它是在加载GridView时触发的RowDataBound事件处理程序。