Studio for ASP.NET Wijmo:使用 C1Pager 对 DataList 控件分页

Studio for ASP.NET Wijmo 控件值得称赞的一点是它不仅仅单独为 C1 控件而开发。还可以配合其他控件使用,也正体现了C1控件为提高开发人员工作效率而设计的宗旨。简单的举一个例子,例如 C1Pager 就可以和 DataList 配合使用实现分页功能。<img alt="Pager" width="600px" height="352px" src="http://our.componentone.com/wp-content/uploads/2013/11/Pager.png"/>

发布于 2013/12/27 00:00

ComponentOne Enterprise

Studio for ASP.NET Wijmo 控件值得称赞的一点是它不仅仅单独为 C1 控件而开发。还可以配合其他控件使用,也正体现了C1控件为提高开发人员工作效率而设计的宗旨。简单的举一个例子,例如 C1Pager 就可以和 DataList 配合使用实现分页功能。

先上效果图:

Pager 

实现方法:

首先,我们需要设置 DataList 的数据源,在这个例子中我们使用OleDb 数据源创建DataSet。实现这个功能比较重要的一点是一旦生成数据源,我们需要把它同时赋值给C1Pager PagedDataSource  类。需要为每个页面设置页码。以下为实现代码:

  1: OleDbDataAdapter dadapter;
  2: DataSet dset;
  3: PagedDataSource adsource;
  4: string connstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath("~/App_Data/NWIND.mdb") + ";Persist Security Info=False";
  5: int pos;
  6: int pageCount = 0;
  7:   
  8: protected void Page_Load(object sender, EventArgs e)
  9: {
 10:    if (!IsPostBack)
 11:    {
 12:       this.ViewState["vs"] = 0;
 13:    }
 14:    pos = (int)this.ViewState["vs"];
 15:    DataBind();
 16:    C1Pager1.PageCount = pageCount;
 17:    C1Pager1.Mode = C1.Web.Wijmo.Controls.C1Pager.PagerMode.Numeric;
 18: }

 

以下是 DataBind 方法的实现代码:

  1: public void DataBind()
  2: {
  3:    dadapter = new OleDbDataAdapter("SELECT TOP 20 CompanyName, City, Country FROM Customers", connstring);
  4:    dset = new DataSet();
  5:    adsource = new PagedDataSource();
  6:    dadapter.Fill(dset);
  7:    adsource.DataSource = dset.Tables[0].DefaultView;
  8:    adsource.PageSize = 5;
  9:    adsource.AllowPaging = true;
 10:    adsource.CurrentPageIndex = pos;
 11:    DataList1.DataSource = adsource;
 12:    DataList1.DataBind();
 13:    pageCount = Convert.ToInt32(dset.Tables[0].Rows.Count / adsource.PageSize);
 14: }

 

接下来需要通过 C1Pager 的点击实现为 DataList 切换数据,实现分页效果:

  1: protected void C1Pager1_PageIndexChanged(object sender, EventArgs e)
  2: {
  3:    int currPage = C1Pager1.PageIndex;
  4:    pos = (int)this.ViewState["vs"];
  5:    pos += currPage;
  6:    this.ViewState["vs"] = pos;
  7:    DataBind();
  8:    pos = 0;
  9:    this.ViewState["vs"] = 0;
 10: }

 

好了,通过以上步骤我们就结合 C1Pager 和 DataList 实现了完美的真分页。每次点击C1Pager页码时都会回调后台的DataBind方法来刷新DataList的数据。以下是示例,赶快下载体验吧:

VS2010+Framework 4.0 + C# 点击下载

 

VS2010+Framework 4.0 + VB.NET 点击下载

 

下载 Stduio for ASP.NET Wijmo 产品请进入:

/developer/componentone-aspnet

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态