asp.net 编辑Gridview第二页中的行

bgibtngc  于 2023-04-08  发布在  .NET
关注(0)|答案(2)|浏览(147)

我的gridview出现问题,我的Gridview发生了OnPageIndexChanging事件,我的gridview页面大小为20
一旦记录在第一页达到20,第21 - 40条记录将转到第二页,当我转到第二页时,我在我的gridview中单击编辑按钮..例如:我在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();
}

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

u5rb5r59

u5rb5r591#

GridView控件的EditIndex属性引用当前页上的第X行,而不是要编辑的行的ID。
可以通过将rowindex的模数乘以pagesize来选择适当的行,如下所示:

gridview.EditIndex = iActiveIndex % gridview.PageSize;
t5zmwmid

t5zmwmid2#

我通过添加页面大小得到了正确的索引。

Int32 ActiveIndex = Convert.ToInt32(e.NewEditIndex) % gridview.PageSize;
gridview.EditIndex = ActiveIndex + gridview.PageSize;

相关问题