今天遇到一个奇怪的问题,我已设置好GridView分页,却发现GridView无法分页!费劲周折后,发现是RowDataBound事件惹的祸!
原因分析:
页面中GridView的第一列是Key,当加载后需要隐藏此列,以防用户看见。所以我在RowDataBound事件将第一列隐藏,代码如下:
protected void gvwList_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Visible = false;
}
{
e.Row.Cells[0].Visible = false;
}
这样设置后发现GridView不管你怎么设置GridView,GridView始终无法分页。
解决方法:
实在没辙了,我就在GridView数据绑定后用循环的方法将第一列隐藏。代码如下:
//隐藏第一列标题
gvwList.HeaderRow.Cells[0].Visible = false;
foreach (GridViewRow gvrRow in gvwList.Rows)
{
//隐藏第一列
gvrRow.Cells[0].Visible = false;
}
gvwList.HeaderRow.Cells[0].Visible = false;
foreach (GridViewRow gvrRow in gvwList.Rows)
{
//隐藏第一列
gvrRow.Cells[0].Visible = false;
}
这样GridView分页就正常了。
具体GridView为什么会这样,我也不太清楚!