1

我的 gridview 有问题,我的 Gridview 有一个OnPageIndexChanging事件,我的 gridview 的页面大小是20

一旦第一页的记录达到 20,第 21-40 条记录将转到第二页,当我转到第二页时,我在我的 gridview 中单击编辑按钮.. 例如:我单击第 21行在gridview中记录

该行的 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();
}

我的问题有什么可能的解决方案吗?

4

1 回答 1

3

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

可以通过将 rowindex 的模数乘以 pagesize 来选择正确的行,如下所示:

gridview.EditIndex = iActiveIndex % gridview.PageSize;
于 2013-01-15T09:10:23.213 回答