说道gridview,我总是想起vs2003的DataGrid,可能是用的多点的缘故吧.在datagrid里我做的分页都是自己加页面分页button or label ,然后利用datagrid的自动分页功能.在自己分页button事件里写代码.绑定的多是dataset数据源,每次分页button click事件里都要重新绑定一次.觉得很麻烦,毕竟dataset每次准备数据都要连接数据库.在web程序里要保存dataset数据好像也很麻烦.效率自然很低.
在作vs2005的时候知道gridview是datagrid的升级替换控键,看介绍以为一次绑定后,gridview可以自己控制分页不用偶们在操心.今天用了下,只有在gridview有一个datasouceId连接到datasouce控件的时候,而且datasouce的selectcommand和connnectstring设置好,分页才可以自动进行. 其他数据源如:string[],或dataset绑定的时候,都必须在RolesGrid_PageIndexChanging中写下代码,并且重新绑定数据才有效.看来还是没有质的改变.不过象page chang button,到是全做完了,比原来2003的DataGrid是要好用多了.
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
rolesArray = Roles.GetAllRoles();
this.GridView1.DataSource = rolesArray; //string[]
GridView1.DataBind();
}
但是在我调试时,不管许不需要加RolesGrid_PageIndexChanging事件代码,都要做个 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)事件,否则就会抛找不到PageIndexChanging事件句柄的异常,晕,觉得特没道理,不知各位路过的看官有没有碰到过呢?