首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

AspNetPager分页,该如何解决

2013-07-20 
AspNetPager分页求帮忙写一个AspNetPager1根据查询条件查询的结果分页的代码例子...[解决办法]public void

AspNetPager分页
求帮忙写一个AspNetPager1根据查询条件查询的结果分页的代码例子...AspNetPager分页,该如何解决
[解决办法]

   public void BindData()
        {
            string sql = @"select rownum rn,t.* from(
select a.sfzh,a.xm,a.xb,a.ysyj,a.yybf,a.bcffze,a.xskssj,a.xsjzsj,a.yhkh,a.dh,a.dyfesj,b.dwgryljfjs as ylsjje,b.jfssq from sybx a left join
(select * from zgylbx where jfssq='" + DateTime.Now.AddMonths(-1).ToString("yyyyMM") + "') b on a.sfzh=b.sfzh where a.sjqb='" + DateTime.Now.AddMonths(-1).ToString("yyyyMM") + "') t";
            
            BLL bll = new BLL();
            bll.BindingRepeaterWithAspNetPager(AspNetPager1, Repeater1, sql);
        }

[解决办法]
 #region 用aspnetpager控件和repeater控件结合oracle存储过程绑定
        /// <summary>
        /// 用aspnetpager控件和repeater控件结合oracle存储过程绑定
        /// </summary>
        /// <param name="aspnetpager">aspnetpager控件</param>
        /// <param name="bindingtarget">repeater控件</param>
        /// <param name="pagesql">执行的sql语句</param>
        public void BindingRepeaterWithAspNetPager(AspNetPager aspnetpager, Repeater bindingtarget, string pagesql)
        {
            int recordcount = 0;


            ArrayList result = null;
            MPage page = new MPage();
            page.Pagesize = aspnetpager.PageSize;//每页显示的条数
            page.Pageindex = aspnetpager.StartRecordIndex / aspnetpager.PageSize;//显示页的索引 从0开始
            page.Pagesql = pagesql;//产生分页的sql语句 sql要求必须包含rownum字段且其别名为rn,如例子:select rownum rn,t.* from test t

            bindingtarget.DataSource = GetPageRecord(page, out result);
            bindingtarget.DataBind();

            if (result != null && result.Count > 0)
            {
                if (int.TryParse(result[3].ToString(), out recordcount))
                {
                    aspnetpager.RecordCount = recordcount;
                }
                else
                {
                    aspnetpager.RecordCount = 0;
                }
            }
        }
        #endregion


[解决办法]
 #region 获取分页的记录
        /// <summary>
        /// 获取分页的记录
        /// </summary>
        /// <param name="page">封装的页面对象</param>
        /// <param name="result">反馈的结果</param>


        /// <returns>结果集的表</returns>
        public DataTable GetPageRecord(MPage page, out ArrayList result)
        {
            OracleParameter[] oracleParameter = new OracleParameter[6];

            oracleParameter[0] = new OracleParameter("p_pagesql", OracleType.VarChar);
            oracleParameter[0].Direction = ParameterDirection.Input;
            oracleParameter[0].Value = page.Pagesql;

            oracleParameter[1] = new OracleParameter("p_pagesize", OracleType.Number);
            oracleParameter[1].Direction = ParameterDirection.Input;
            oracleParameter[1].Value = page.Pagesize;

            oracleParameter[2] = new OracleParameter("p_pageindex", OracleType.Number);
            oracleParameter[2].Direction = ParameterDirection.Input;
            oracleParameter[2].Value = page.Pageindex;

            oracleParameter[3] = new OracleParameter("p_totalcount", OracleType.Number);
            oracleParameter[3].Direction = ParameterDirection.Output;

            oracleParameter[4] = new OracleParameter("p_pagecount", OracleType.Number);
            oracleParameter[4].Direction = ParameterDirection.Output;

            oracleParameter[5] = new OracleParameter("p_currentpagedata", OracleType.Cursor);
            oracleParameter[5].Direction = ParameterDirection.Output;

            DataAccess da = new DataAccess();
            return da.ExecuteProcedureWithTable(DBConn.sb, ref oracleParameter, "p_app_page", out result);


        }
        #endregion

热点排行