AspNetPager分页
求帮忙写一个AspNetPager1根据查询条件查询的结果分页的代码例子...
[解决办法]
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