2012-08-05 74 views
0

我绑定与数据表格的网格视图,我想绑定后计算一些值 实现此目的的简单和常见的方法是在RowDataBound事件中执行所有计算,查找行中的控件并填充计算值。但是目前我在网格视图中没有任何控制权,而是直接使用Eval方法显示值。在行数据绑定事件中修改网格视图dataitem?

我想知道是否有任何的方式来更新与数据绑定事件网格视图行关联,所以我能避免添加控件,可以直接访问这些计算列在模板领域,像这样

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> 

但是我得到空row.DataItem!

有什么想法?

回答

0

您应该使用RowDataBound事件,它会给您一个对当前绑定行的引用。

protected void gvSuspensions_RowDataBound(Object sender, GridViewRowEventArgs e) 

而e.Row.DataItem是你应该访问的。

Referece for RowDataBound

相关问题