自写分页

ASP代码:

  

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            Bindboke(1);
    }

    private void Bindboke(int pageIndex)
    {
        string str = ConfigurationManager.ConnectionStrings["bokeConnectionString"].ConnectionString;
        using (SqlConnection cnn=new SqlConnection(str))
        {
            SqlCommand cmm = cnn.CreateCommand();
            cmm.CommandText = "fenye";
            cmm.CommandType = System.Data.CommandType.StoredProcedure;
            cmm.Parameters.AddWithValue("@pageSize", 3);
            cmm.Parameters.Add("@pageCount", SqlDbType.Int).Direction = ParameterDirection.Output;
            cmm.Parameters.AddWithValue("@pageIndex", pageIndex);
            SqlDataAdapter da = new SqlDataAdapter(cmm);
            DataSet ds = new DataSet();
            da.Fill(ds);
            GridView1.DataSource = ds.Tables[0];
            this.DataBind();
            this.HiddenField1.Value = pageIndex.ToString();
            this.HiddenField2.Value = cmm.Parameters["@pageCount"].Value.ToString();
            this.Label1.Text = pageIndex + "/" + this.HiddenField2.Value;
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        this.Bindboke(1);
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        int index = Convert.ToInt32(this.HiddenField1.Value);
        if (index > 1)
        {
            index--;
        }
        this.Bindboke(index);
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        int index = Convert.ToInt32(this.HiddenField1.Value);
        int total = Convert.ToInt32(this.HiddenField2.Value);
        if (index < total)
        {
            index++;
        }
        this.Bindboke(index);
    }

    protected void Button4_Click(object sender, EventArgs e)
    {
        this.Bindboke(Convert.ToInt32(this.HiddenField2.Value));
    }

    protected void Button5_Click(object sender, EventArgs e)
    {
        int total = Convert.ToInt32(this.HiddenField2.Value);
        int index = Convert.ToInt32(this.TextBox1.Text);
        if (index <= total)
        {
            this.Bindboke(index);
        }
    }

 

存储过程:数据库名boke

 

ALTER PROCEDURE [dbo].[fenye]
 -- Add the parameters for the stored procedure here
 @pageSize int,  --每页记录数量
 @pageCount int output,  --总页数
 @pageIndex int,  --当前页索引号
 @strWhere   varchar(8000)=''  --查询条件
AS
BEGIN
    declare @strSQL   varchar(8000);
    declare @strTmp   varchar(100);
    declare @strSelect varchar(4000);
    declare @strOrder varchar(6000)
    set @strOrder='order by id '  --排序条件
    set @strSelect=' * '
 
    if @PageIndex = 1
     begin
         if @strWhere != ''
             set @strSQL = 'select top ' + str(@PageSize) + @strSelect+'  from Table1 where ' + @strWhere + ' ' + @strOrder
         else
             set @strSQL = 'select top ' + str(@PageSize) + @strSelect+'   from Table1 '+ @strOrder
     end
 else
     begin

         set @strSQL = 'select top ' + str(@PageSize)  + @strSelect+'   from Table1
                 where id>(select max(id) from (select top ' + str((@PageIndex-1)*@PageSize) + ' id from Table1 ' + @strOrder + ') as tblTmp) '+ @strOrder
         if @strWhere != ''
             set @strSQL = 'select top ' + str(@PageSize)  + @strSelect+'     from Table1
                 where id>(select max(id) from
                 (select top ' + str((@PageIndex-1)*@PageSize) + ' id from  Table1 where ' + @strWhere + ' '
                 + @strOrder + ') as tblTmp) and  ' + @strWhere + ' ' + @strOrder
     end
declare @recordCount int
 select @recordCount=count(id) from Table1
 set @pageCount= @recordCount / @pageSize
 if @recordCount % @pageSize > 0
  set @pageCount=@pageCount+1

print @strSQL
  exec (@strSQL)
 end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值