通过DeKlarit生成DklBusinessFramework,在web上引用DklBusinessFramework.dll,在web里新建components文件夹,这里面可以写一些公共类和业务逻辑类,新建area.cs和common.cs
area.cs
///一共2个方法一个得到记录总数和一个返回一个DataSet
/// <summary>
/// List all the products. If the amount of data coming back is
/// large, consider using GetList_ListByPage().
/// </summary>
/// <param name="catid">Product category.</param>
/// <returns>Data reader.</returns>
public int GetListCount()
{
tbl_areaDataReader dr = new tbl_areaDataReader();
IDataReader dataReader = (IDataReader) dr.Open();
int numResults = 0 ;
// read the data we are interested in
while (dataReader.Read())
{
numResults++;
}
dataReader.Close();
return numResults;
}
/// <summary>
/// Get list of products.
/// </summary>
/// <param name="catid">Product category</param>
/// <param name="currentPage">Page result set to return</param>
/// <param name="pageSize">Size of result set to return</param>
/// <returns>Result set</returns>
public tbl_areaDataSet GetList(int currentPage, int pageSize )
{
tbl_areaDataSet areaDs = new tbl_areaDataSet();
tbl_areaDataAdapter areaDa = new tbl_areaDataAdapter();
// now loop through the list and pull out items of the specified page
int start = (int)((currentPage - 1) * pageSize);
areaDa.FillPage(areaDs, start , pageSize);
return areaDs ;
}
common.cs
///一个方法 得到url参数
// pull the values off the query string
public static void LoadQueryString(HttpRequest Request, ref int currentPage, ref int pageCount)
{
if (Request.QueryString["requestedPage"] != null)
{
currentPage = System.Int32.Parse(Request.QueryString["requestedPage"]);
pageCount = System.Int32.Parse(Request.QueryString["pageCount"]);
}
else
currentPage = 1;
}
webform1.aspx.cs
///其中这里面 需要实例化的类和方法都在DklBusinessFramework.dll
///比如tbl_areaDataSet results = area.GetList(currentPage,pageSize);中的tbl_areaDataSet就是数据集
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater list;
const int pageSize = 4;
const int numSeachResults = 0;
// page variables
private int currentPage, pageCount, numResults = 0;
protected System.Web.UI.WebControls.HyperLink lnkPrevious;
protected System.Web.UI.WebControls.HyperLink lnkNext;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (Page.IsPostBack == false)
{
// First time here we want to fetch the first page. All of the
// other page requests will be handled through the page
// navigation button event handlers.
currentPage = 1;
BindData();
}
}
private void BindData()
{
Common.LoadQueryString(Request, ref currentPage, ref pageCount);
Area area = new Area();
tbl_areaDataSet results = area.GetList(currentPage,pageSize);
list.DataSource = results;
list.DataBind();
if (!Page.IsPostBack)
{
numResults = area.GetListCount();
pageCount = (int)System.Math.Ceiling((double)numResults / pageSize);
}
// hide or show navigation buttons
if (pageCount > 1)
{
// there are multiple pages
lnkPrevious.Visible = currentPage > 1;
lnkNext.Visible = currentPage < pageCount;
}
else
{
// there is only one page, hide both buttons
lnkPrevious.Visible = lnkNext.Visible = false;
}
lnkPrevious.NavigateUrl = "WebForm1.aspx?requestedPage=" + (currentPage - 1) + "&pageCount=" + pageCount;
lnkNext.NavigateUrl = "WebForm1.aspx?requestedPage=" + (currentPage + 1) + "&pageCount=" + pageCount;
}
}