我有一个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" >
任何人都可以帮助我吗
谢谢,
答案 0 :(得分:1)
首先,您显示的代码不应该在RowUpdating
事件处理程序中吗?至于你得到的错误,很明显是由于生日单元格中的格式化字符串错误。
你检查过空字符串吗?我猜你甚至在屏幕上的GridView
渲染之前就得到了异常,因为它是在加载GridView时触发的RowDataBound
事件处理程序。