无法根据网格视图中的其他列更新列

本文关键字:其他 更新 视图 网格 | 更新日期: 2023-09-27 17:57:46

我有一个网格视图,网格有5个不同的列ID,FirstName,LastName,DateOfBirth和Age,网格视图可以编辑,所以我想根据DateOfBirt列更新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" >

有人能帮我拿这个吗

谢谢,

无法根据网格视图中的其他列更新列

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

你检查过空字符串吗?我猜您甚至在GridView在屏幕上呈现为它在RowDataBound事件处理程序中之前就已经得到了异常,该事件处理程序在加载GridView时触发。