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 に答える