在我绑定到ObjectDataSource的分页GridView(包含在UpdatePanel中)中,我有一个OnDataBound事件,
protected void GridView1_DataBound(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
// row isn't starting from the first row of current page in mono!
}
}
在.NET中运行时,我GridView.Rows
总是给我当前页面中的那些(即GridViewRow.DataItemIndex不是0
,而是它的数据源的正确索引)。但是在Mono 2.10.8上,无论我正在查看哪个页面,这都会给我0
但是,GridView.Rows [0] .DataItem返回与.NET相同的项目。似乎DataItemIndex中存在一个错误。
有没有办法解决它并实现与Mono上的.NET相同的行为并仍然保持与.NET的兼容性?
答案 0 :(得分:1)
找到了实现这一目标的方法。
public static int GetDataItemIndex(this GridViewRow row)
{
var gridView = (GridView)row.NamingContainer;
return row.RowIndex + (gridView.PageIndex * gridView.PageSize);
}
这适用于Mono和.NET。