Studio for ASP.NET Wijmo 控件值得称赞的一点是它不仅仅单独为 C1 控件而开发。还可以配合其他控件使用,也正体现了C1控件为提高开发人员工作效率而设计的宗旨。简单的举一个例子,例如 C1Pager 就可以和 DataList 配合使用实现分页功能。
先上效果图:
实现方法:
首先,我们需要设置 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 产品请进入:
http://www.gcpowertools.com.cn/products/componentone_studio_asp.htm