首先,没有使用SqlDataSource数据源控件,而是直接通过代码为GridView绑定数据的。那么直接造成运行时点击分页按钮报错,目前我知道的原因有两个:①报PageIndexChanging这种错误②报字符串格式错误
首先第一个报错:理论上通过绑定SqlDataSource数据源控件分页时不会报错,但是通过代码绑定的就有问题了,解决方法如下:
protected void GV_dpt_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GV_dpt.PageIndex = e.NewPageIndex;
GV_dpt.DataBind();
}
添加该事件,这里的GV_dpt是GridView的ID名称。
接下来第二个报错:因为在GridView里面添加了<asp:ButtonField CommandName="DelDpt" HeaderText="删除操作" Text="删除系部" />或者<asp:CommandField HeaderText="操作" ShowDeleteButton="True" />这种字段,单击分页时,直接报字符串格式错误,错误行号显示在int index = Convert.ToInt32(e.CommandArgument.ToString());这一行,解决方法如下:
if (e.CommandName != "Page") //非分页按钮点击情况下
{
int index = Convert.ToInt32(e.CommandArgument.ToString()); //获取当前按钮点中的行号
}
在原有的代码上添加if语句判断一下即可