我在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();
}
我的问题是否有任何可能的解决方案?
答案 0 :(得分:3)
GridView控件的EditIndex属性引用当前页面上的第X行,而不是要编辑的行的id。
可以通过将pagesindex的模数乘以pagesize来选择正确的行:
gridview.EditIndex = iActiveIndex % gridview.PageSize;