GirdView 自定义分页不显示分页页数!请大虾帮忙看看!
ztwz 2006-04-04 10:29:56 我以把GirdView的AllowPaging设为true,我表里的数据有16行,我把GirdView设为每页显示3行!
问题一:不会显示分页页数,就是分页下面的1 2 3 4 ...这种!
问题二:分页最多只能翻一页,GirdView.PageIndex的值怎么翻都是1(默认是0)
自动分页的代码是照这儿写的,http://dotnet.chinaitlab.com/ASPNET/39212.html
下面是我的代码!请帮我看看错在哪儿了!因为分页数字显示不出来,所以我添加了两个按钮,上一页,和下一页,用来翻页
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using App_Code.page;
using System.Data.SqlClient;
public partial class test_test : System.Web.UI.Page
{
private int recordCount;//总记录数
private int pageCount;//总页数
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
databind();
}
}
private static DataSet GetCustomersData(int pageIndex, int pageSize, ref int recordCount, ref int pageCount)//当前页,每页显示几条记录,总记录,总页数
{
string connstring = "server=.;database=ztwz;Trusted_Connection=SSPI";
SqlConnection conn = new SqlConnection(connstring);
SqlCommand com = new SqlCommand("GetPage", conn);
com.Parameters.Add(new SqlParameter("@pageIndex", SqlDbType.Int));
com.Parameters[0] .Value = pageIndex;
com.Parameters.Add(new SqlParameter("@pageSize", SqlDbType.Int));
com.Parameters["@pageSize"].Value = pageSize;
com.Parameters.Add(new SqlParameter("@recordCount", SqlDbType.Int));
com.Parameters["@recordCount"].Direction = ParameterDirection.Output;
com.Parameters.Add(new SqlParameter("@pageCount", SqlDbType.Int));
com.Parameters["@pageCount"].Direction = ParameterDirection.Output;
com.CommandType = CommandType.StoredProcedure;
SqlDataAdapter sda = new SqlDataAdapter(com);
DataSet ds = new DataSet();
sda.Fill (ds);
recordCount =(int)com.Parameters[2].Value ;
pageCount =(int)com.Parameters [3].Value ;
return ds;
}
protected void databind()
{
DataSet ds= GetCustomersData (GridView3.PageIndex ,GridView3.PageSize ,ref recordCount,ref pageCount);
GridView3.DataSource = ds;
GridView3.DataBind();
}
public int PageCount
{
get { return this.GridView3 .PageCount; }
}
public int PageSize
{
get { return this.GridView3.PageSize; }
}
public int PageIndex
{
get { return this.GridView3.PageIndex; }
set { this.GridView3 .PageIndex = value; }
}
public int RecordCount
{
get { return recordCount; }
}
protected void GridView3_PageIndexChanging1(object sender, GridViewPageEventArgs e)
{
//GridView gv = (GridView)sender; //这儿看不懂他在干什么,因为我的分页数写显
//示不出来,所以段代码也没有用,
//gv.PageIndex = e.NewPageIndex;
//databind();
}
protected void btnUp_Click(object sender, EventArgs e)//上一页
{
this.PageIndex -= 1;
databind();
}
protected void btnNext_Click(object sender, EventArgs e)//下一页
{
this.PageIndex += 1;
databind();
}
}
-----------------------------------------------------------------------
我的存储过程
create proc [GetPage]
@pageindex int,
@pagesize int,
@recordcount int out,
@pagecount int out
as
select @recordcount=count(*)from data
set @pagecount=ceiling(@recordcount*1.0/@pagesize)
declare @sqlstr nvarchar(1000)
if @pageindex=0 or @pagecount<=1
set @sqlstr=N'select top'+str(@pagesize)+'id,username from data order by id desc'
else if @pageindex=@pagecount-1
set @sqlstr=N' select *from(select top'+str(@recordcount-@pagesize*@pageindex)+
'id,username from data orde by id asc) temptable order by id desc'
else
set @sqlstr=N' select top'+str(@pagesize)+'* from (select top'+str(@recordcount-@pagesize*@pageindex)+
'id,username from data order by id asc) temptable order by id desc'
exec(@sqlstr)
go