编程人生

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

通过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;
  }
 }

posted on 2006-11-16 15:29  choice  阅读(480)  评论(0编辑  收藏  举报