1

在绑定到 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 的兼容性?

4

1 回答 1

1

找到了实现这一目标的方法。

public static int GetDataItemIndex(this GridViewRow row)
{
    var gridView = (GridView)row.NamingContainer;
    return row.RowIndex + (gridView.PageIndex * gridView.PageSize);
}

这适用于 Mono 和 .NET。

于 2012-05-29T06:40:13.353 回答