为什么我的datagrid.pagecount总是0,我快疯了,整整弄了三天分页
//计算页数
public int pcount(DataGrid MyDataGrid)
{
return MyDataGrid.PageCount;
}
//响应分页事件
public void pagechange(string pagemark,DataGrid MyDataGrid)
{
int pcount=this.pcount(MyDataGrid);
switch(pagemark)
{
case "first":
MyDataGrid.CurrentPageIndex=0;
break;
case "next":
if(MyDataGrid.CurrentPageIndex<pcount-1) MyDataGrid.CurrentPageIndex+=1; break;
case "pre":
if(MyDataGrid.CurrentPageIndex>0)
MyDataGrid.CurrentPageIndex-=1;
break;
case "last":
MyDataGrid.CurrentPageIndex = pcount - 1;
break;
}
}
//是不是点击超连接<a href="">(runat不是server)不触发IsPostBack事件????????
if(!this.Page.IsPostBack)
{
this.toptitle.Text="<div align=center><b>查询结果如下:</b></div>";
this.filldate(gj,lx);//将datareader中的内容放入会话表格中,既this.Session["searchtable"]);
this.DataGrid2.VirtualItemCount=((DataTable)this.Session["searchtable"]).Rows.Count;
//用于检测是first,next,pre,last,以便触发上一页,下一页,最后页,首页
if(this.Request.QueryString["type"]!=null)
{
string type=this.Request.QueryString["type"].ToString();
this.pagechange(type,this.DataGrid2);
this.Response.Write(this.DataGrid2.CurrentPageIndex);//测试用,但每次都是0
startIndex = this.DataGrid2.CurrentPageIndex * this.DataGrid2.PageSize;
this.Response.Write(this.DataGrid2.PageCount);//测试用,但每次都是0
this.BindGrid();
}
else
{
this.BindGrid();
}
}
//OnPageIndexChanged="mydatechange"(html中触发DataGrid2分页),该段代码实现了
protected void mydatechange(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid2.CurrentPageIndex = e.NewPageIndex;
startIndex = this.DataGrid2.CurrentPageIndex * this.DataGrid2.PageSize;
BindGrid();
}
private void BindGrid()
{
this.DataGrid2.DataSource = CreateDataSource();
this.DataGrid2.DataBind();
}
//其中DataGrid2自带的页码实现了,但就是上页下页,首页,末页总也出现currentpageindex=0,pagecount=0我也不知道是为什么?????????