第一次写博客,今天学习了AspNetPage第三方的分页控件,老师讲的有点迷糊,不过还能听懂,项目是三层架构写的,
大神们就别鄙视我了。。我就是想分享下。。也为我所学知识总结下,学了一天了,好累好累。。世界晚安~
UI
DAL
BLL
1 .首先在DBHelper创建一个方法,用于执行存储过程
public static DataTable ExecuteProc(string sql,params SqlParameter[] param)
{
try
{
SqlCommand com = new SqlCommand(sql,con);
com.CommandType = CommandType.StoredProcedure;
com.Parameters.AddRange(param);
SqlDataAdapter sda = new SqlDataAdapter(com);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds.Tables[];
}
catch (Exception es)
{
throw es;
}
}
.在DStudentInfo创建一个方法用于传参
public DataTable GetPage(int pageSize, int currentPage)
{
try
{
SqlParameter p1 = new SqlParameter("@pageSize",pageSize);
SqlParameter p2 = new SqlParameter("@currentPage",currentPage);
return DBHelper.ExecuteProc("proc_page",p1,p2);
}
catch (Exception)
{
throw;
}
}
.在BStudentInfo创建一个相同的方法
public DataTable GetPage(int pageSize, int currentPage)
{
return ds.GetPage(pageSize,currentPage);
}
.在UI层创建一个方法获取数据总个数,每页显示的个数
private void SetPageCount()
{
AspNetPager1.RecordCount = new BStudentInfo().GetSutdentInfoCount();
AspNetPager1.PageSize = ;
}
.在UI层创建一个方法用于加载时间
private void DataLoad()
{
int pageSize = AspNetPager1.PageSize;
int currentPage = AspNetPager1.CurrentPageIndex;
Repeater1.DataSource = new BStudentInfo().GetPage(pageSize,currentPage);
Repeater1.DataBind();
}
.在ASPNETPAGE事件写入加载事件
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
DataLoad();
}
.页面加载事件
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SetPageCount();
DataLoad();
}
}