我使用datatable绑定网格视图,我想在绑定后计算一些值 实现此目的的简单和常见方法是在RowDataBound事件中执行所有计算,查找行中的控件并使用计算值填充它们。但是目前我的网格视图中没有任何控件,而是直接使用Eval方法显示值。
我想知道是否有任何方法可以更新与DataBound事件中的网格视图行关联的数据项,这样我就可以避免添加控件并可以直接访问模板字段中的那些计算列,如下所示
protected void gvSuspensions_DataBound(object sender, EventArgs e)
{
foreach (GridViewRow row in gvPreviousSuspensions.Rows)
{
DataRowView rowView = (DataRowView)row.DataItem;// getting DataItem null :(
rowView["ComputedColumn"] = "ComputedValue";
}
}
可以像这样直接使用
<asp:TemplateField>
<ItemTemplate>
<%# Eval("ComputedColumn") %>
</ItemTemplate>
</asp:TemplateField>
但我得到null row.DataItem!
有什么想法吗?
答案 0 :(得分:0)
您应该使用RowDataBound事件,它会为您提供对当前绑定行的引用。
protected void gvSuspensions_RowDataBound(Object sender, GridViewRowEventArgs e)
e.Row.DataItem是你应该访问的。