0

我正在将网格视图与数据表绑定,我想在绑定后计算一些值实现此目的的简单而常见的方法是在 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>

但我得到空行.DataItem!

任何想法?

4

1 回答 1

0

您应该改用 RowDataBound 事件,它为您提供对当前绑定行的引用。

protected void gvSuspensions_RowDataBound(Object sender, GridViewRowEventArgs e)

e.Row.DataItem 是您应该访问的内容。

RowDataBound 的参考

于 2012-12-28T14:22:34.050 回答