Saturday, March 9, 2013

Custom Paging in Datalist or repeater


This is a very simple custom paging technique for a developer where ha can do paging in datalist and repeater in only 5 minutes.enjoy code.....

  public void BindPhoto()
        {
            GalleryModuleController objCommentModules = new GalleryModuleController();

            List cmi;
            cmi = objCommentModules.PhotoList(0);
            if (cmi.Count > 0)
            {
                dlphotogallery.DataSource = cmi;
                dlphotogallery.DataBind();
                pds.DataSource = cmi;
                pds.AllowPaging = true;

                //to set the paging change the number 3 to your desired value

                pds.PageSize = 4;

                pds.CurrentPageIndex = CurrentPage;

                lnkbtnNext.Enabled = !pds.IsLastPage;

                lnkbtnPrevious.Enabled = !pds.IsFirstPage;

                dlphotogallery.DataSource = pds;

                dlphotogallery.DataBind();

                doPaging();
            }
        }


        protected void lnkbtnPrevious_Click(object sender, EventArgs e)
        {

            CurrentPage -= 1;
            BindPhoto();

        }

        protected void lnkbtnNext_Click(object sender, EventArgs e)
        {

            CurrentPage += 1;

            BindPhoto();

        }

        protected void dlPaging_ItemCommand(object source, DataListCommandEventArgs e)
        {

            if (e.CommandName.Equals("lnkbtnPaging"))
            {
                CurrentPage = Convert.ToInt16(e.CommandArgument.ToString());
                BindPhoto();
            }

        }

        protected void dlPaging_ItemDataBound(object sender, DataListItemEventArgs e)
        {

            LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging");
            if (lnkbtnPage.CommandArgument.ToString() == CurrentPage.ToString())
            {
                lnkbtnPage.Enabled = false;
                lnkbtnPage.Font.Bold = true;
            }

        }

        public int CurrentPage
        {
            get
            {
                if (this.ViewState["CurrentPage"] == null)

                    return 0;

                else

                    return Convert.ToInt16(this.ViewState["CurrentPage"].ToString());

            }

            set
            {

                this.ViewState["CurrentPage"] = value;

            }

        }



        private void doPaging()
        {

            DataTable dt = new DataTable();

            dt.Columns.Add("PageIndex");

            dt.Columns.Add("PageText");

            for (int i = 0; i < pds.PageCount; i++)
            {

                DataRow dr = dt.NewRow();

                dr[0] = i;

                dr[1] = i + 1;

                dt.Rows.Add(dr);

            }

            dlPaging.DataSource = dt;

            dlPaging.DataBind();

        }

No comments:

Post a Comment