yuezhonghu

悠然现南山...
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Wuqi.Webdiyer.AspNetPager

Posted on 2008-03-11 13:39  .狐狸血.  阅读(14833)  评论(0编辑  收藏  举报

比较标准的分页显示格式和属性设置:

<webdiyer:aspnetpager
id="AspNetPager1"
runat="server"
firstpagetext="首页"
lastpagetext="尾页"
nextpagetext="下一页"
numericbuttoncount="5"
onpagechanging="AspNetPager1_PageChanging"
pagingbuttonspacing="10px"
prevpagetext="上一页"
showboxthreshold="1"
submitbuttontext="GO"
AlwaysShow="True"
ShowInputBox="Always">
</webdiyer:aspnetpager>

绑定分页数据

绑定数据表互动

    /// <summary>
    /// 分页控件
    /// </summary>
    private void BoundToAspNetPager(Wuqi.Webdiyer.AspNetPager NetPager1,int states)
    {
        ArrayList ParamList = new ArrayList();
        string SQL1 = "SELECT * FROM  ActionInfo T1 right join ZhanShang T2 on T1.ACI_ZS_ID=T2.ZS_ID right join users T3 ON T1.ACI_User_ID=T3.U_ID WHERE T1.ACI_LogicDel=1 AND ACI_ZhuangTai=@ACI_ZhuangTai";
        ParamList.Add(DataParameter.MakeParam("@ACI_ZhuangTai", SqlDbType.Int, 4, states));
        if (Session["UserID"] != null && Session["UserID"].ToString().Length > 0) //哪个会员申报的三名
        {
            SQL1 += " AND ACI_User_ID=@ACI_User_ID";
            ParamList.Add(DataParameter.MakeParam("@ACI_User_ID", SqlDbType.Int, 4, int.Parse(Session["UserID"].ToString())));
        }

        SQL1 += " order by aci_id desc";
        int Count = Pages.GetRecordCount(SQL1, ParamList);
        NetPager1.PageSize = 7;
        NetPager1.RecordCount = Count;

    }

     /// <summary>
    /// 绑定到数据控件
    /// </summary>
    private void BoundToGridView(GridView GridViews, int states, Wuqi.Webdiyer.AspNetPager NetPager1)
    {
        ArrayList ParamList = new ArrayList();
        string SQL1 = "SELECT * FROM  ActionInfo T1 right join ZhanShang T2 on T1.ACI_ZS_ID=T2.ZS_ID right join users T3 ON T1.ACI_User_ID=T3.U_ID WHERE T1.ACI_LogicDel=1 AND ACI_ZhuangTai=@ACI_ZhuangTai";
        ParamList.Add(DataParameter.MakeParam("@ACI_ZhuangTai", SqlDbType.Int, 4, states));
        if (Session["UserID"] != null && Session["UserID"].ToString().Length > 0) //哪个会员申报的三名
        {
            SQL1 += " AND ACI_User_ID=@ACI_User_ID";
            ParamList.Add(DataParameter.MakeParam("@ACI_User_ID", SqlDbType.Int, 4, int.Parse(Session["UserID"].ToString())));
        }

        SQL1 += " order by aci_id desc";
        GridViews.DataSource = Pages.GetDataTable("ActionInfo", NetPager1.PageSize * (NetPager1.CurrentPageIndex - 1), NetPager1.PageSize, SQL1, ParamList);
        GridViews.DataKeyNames = new string[] { "ACI_ID" };
        GridViews.DataBind();
    }

分页函数:

    protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
    {
        AspNetPager1.CurrentPageIndex = e.NewPageIndex;
        BoundToAspNetPager(AspNetPager1, 0);//分页
        BoundToGridView(GridView1, 0, AspNetPager1);   //数据

    }

有一个分页的类:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Data.SqlClient;
using baitang.DB;

/// <summary>
/// Pages 的摘要说明
/// </summary>
public class Pages
{
    protected int RecordCount;
    protected SqlDataAdapter SDA_Page;
    public Pages()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    #region 两个分页函数 arraylist
    /// <summary>
    /// 返回符合条件的记录总数
    /// </summary>
    /// <param name="sql">sql语句</param>
    /// <param name="parametaer">参数数组</param>
    /// <returns>int记录总数</returns>
    public static int GetRecordCount(string sql, ArrayList parametaer)
    {
        SqlDataAdapter SDA = new SqlDataAdapter();
        SDA = Database.GetDataAdapter(sql, parametaer);
        DataSet ds = new DataSet();
        try
        {
            SDA.Fill(ds);
            return ds.Tables[0].Rows.Count;
        }
        catch (Exception ex)
        {
        }
        return 0;
    }
    /// <summary>
    /// 返回当前页的数据 Table
    /// </summary>
    /// <param name="startindex">开始数据记录索引</param>
    /// <param name="recordcount">记录总数</param>
    /// <param name="sql">SQL语句</param>
    /// <param name="parameter">参数数组</param>
    /// <returns>DataTalbe表</returns>
    public static DataTable GetDataTable(string TableName, int startindex, int recordcount, string sql, ArrayList parameter)
    {
        SqlDataAdapter SDA = Database.GetDataAdapter(sql, parameter);
        DataSet ds = new DataSet();
        try
        {


            SDA.Fill(ds, startindex, recordcount, TableName);
            return ds.Tables[0];
        }
        catch (Exception e1)
        {
        }
        return null;
    }
    #endregion
    #region 两个分页函数 parameter
    /// <summary>
    /// 返回符合条件的记录总数
    /// </summary>
    /// <param name="sql">sql语句</param>
    /// <param name="parametaer">参数数组</param>
    /// <returns>int记录总数</returns>
    public static int GetRecordCount(string sql, params SqlParameter[] parametaer)
    {
        SqlDataAdapter SDA = new SqlDataAdapter();
        SDA = Database.GetDataAdapter(sql, parametaer);
        DataSet ds = new DataSet();
        try
        {
            SDA.Fill(ds);
            return ds.Tables[0].Rows.Count;
        }
        catch (Exception ex)
        {
        }
        return 0;
    }
    /// <summary>
    /// 返回当前页的数据 Table
    /// </summary>
    /// <param name="startindex">开始数据记录索引</param>
    /// <param name="recordcount">记录总数</param>
    /// <param name="sql">SQL语句</param>
    /// <param name="parameter">参数数组</param>
    /// <returns>DataTalbe表</returns>
    public static DataTable GetDataTable(string TableName, int startindex, int recordcount, string sql, params SqlParameter[] parameter)
    {
        SqlDataAdapter SDA = Database.GetDataAdapter(sql, parameter);
        DataSet ds = new DataSet();
        try
        {


            SDA.Fill(ds, startindex, recordcount, TableName);
            return ds.Tables[0];
        }
        catch (Exception e1)
        {
        }
        return null;
    }
    #endregion