快速业务通道

ASP.NET自定义控件 第十天 实现分页功能的DataList

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
        case Constant.FIRST_PAGE: index = 0;                 break;               case Constant.PREV_PAGE: index =  pageIndex - 1 < 0 ? 0 : pageIndex - 1;                 break;               case Constant.NEXT_PAGE: index =  pageIndex + 1 > _pageCount - 1 ? _pageCount - 1 :  pageIndex + 1;                 break;               case Constant.LAST_PAGE: index =  _pageCount - 1;                 break;             }           }           arg = Constant.PAGE_ARGUMENT +  Constant.ARGUMENT_SPLITTER + index;           btn.Attributes.Add (HtmlTextWriterAttribute.Href.ToString(),                      dal.Page.ClientScript.GetPostBackClientHyperlink(dal, arg));         }       }     }   } }

3.2 创建DataList类,继承自默认的DataList类并实现 IPostBackEventHandler接口:

[ToolboxData(@"<{0}:DataList runat=''server''></

{0}:DataList>")]

[ParseChildren(true)]

[PersistChildren(false)]

public class DataList : System.Web.UI.WebControls.DataList, 

IPostBackEventHandler

{

}

3.3 定义DataList属性,保存分页设置信息:

public int RecordCount

{

  get

  {

    object o = ViewState["RecordCount"];


    return o == null ? 0 : Convert.ToInt32(o);

  }

  set

  {

    ViewState["RecordCount"] = value;

  }

}


public virtual int PageIndex

{

  get

  {

    object o = ViewState["PageIndex"];


    return o == null ? 0 : Convert.ToInt32(o);

  }

  set

  {

    ViewState["PageIndex"] = value;

  }

}


[DefaultValue(10)]

public virtual int PageSize

{

  get

  {

    object o = ViewState["PageSize"];


    return o == null ? 10 : Convert.ToInt32(o);

  }

  set

  {

    ViewState["PageSize"] = value;

  }

}


private PagerSettings _settings;


[DesignerSerializationVisibility

(DesignerSerializationVisibility.Content)]

[PersistenceMode(PersistenceMode.InnerProperty)]

public PagerSettings PagerSettings

{

  get

  {

    if (_settings == null)

      _settings = new PagerSettings();

    if (base.IsTrackingViewState)

      ((IStateManager)_settings).TrackViewState();


    return this._settings;

  }

}


public bool EnablePaging

{

  get

  {

    object o = ViewState["EnablePaging"];


    return o == null ? false : Convert.ToBoolean(o);

  }

  set

  {

    ViewState["EnablePaging"] = value;

  }

}

3.4 创建自定义事件类,保存新页码:

public class DataListPageEventArgs : EventArgs

{

  public int NewPageIndex

  {

    get;

    set;

  }

}

3.5 在DataList类中

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号