在Gridview的第二页中编辑行

时间:2013-01-15 07:58:57

标签: c# asp.net gridview

我在gridview中遇到问题,我的Gridview有一个 OnPageIndexChanging 事件, 我的gridview的pagesize是 20

一旦记录在第一页达到20,第21至第40条记录将转到第二页,当我转到第二页时,我点击网格视图中的编辑按钮。 例如:我点击了gridview

第21条记录的行

该行的EditItemTemplate未显示,但我没有遇到问题,我的代码在调试时运行良好。

这是 Gridview_RowCommand

“EditRow”的代码
protected void gridview_RowCommand(object sender, GridViewCommandEventArgs e)
{

        int iActiveIndex;

        switch (e.CommandName)
        {
            case "EditRow":
                iActiveIndex = Convert.ToInt32(e.CommandArgument);

                gridview.EditIndex = iActiveIndex;

                gridview.DataSource = emp.TrainingPrograms;
                gridview.DataBind();
                break;
         }
}

这是 Gridview_OnPageIndexChanging

中的代码
protected void gridview_OnPageIndexChanging(object sender, GridViewPageEventArgs e)
{

        gridview.DataSource = emp.TrainingPrograms;
        gridview.PageIndex = e.NewPageIndex;
        gridview.DataBind();
}

我的问题是否有任何可能的解决方案?

1 个答案:

答案 0 :(得分:3)

GridView控件的EditIndex属性引用当前页面上的第X行,而不是要编辑的行的id。

可以通过将pagesindex的模数乘以pagesize来选择正确的行:

gridview.EditIndex = iActiveIndex % gridview.PageSize;