Saturday, March 15, 2014

Custom Paging in DataList using PagedDataSource in C# to Get List Item data from SharePoint 2010

1- Put below code .aspx file

   <asp:DataList ID="datalst1" runat="server" BackColor="#FBFBFB"  BorderWidth="0px"
                CellPadding="4" RepeatColumns="3" RepeatDirection="Horizontal" 
                Font-Names="Calibri" Font-Size="10pt" >
                <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
                <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
                <ItemStyle BackColor="#EFF3FB" ForeColor="#333333" BorderColor="#000001" BorderStyle="Solid"
                    BorderWidth="1px" />
                <SelectedItemStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
                <ItemTemplate>     
                                <b>Category:</b>
               <asp:Label ID="lblCategory" Text='<%# Bind("Category") %>' runat="server"></asp:Label>  
                </ItemTemplate>
                <SeparatorStyle BorderStyle="None" />
            </asp:DataList>

            <div style="float: right; font-family: Calibri; font-size: 12pt; font-weight: bold;
                color: #000080;">
                <asp:LinkButton ID="lnkPrev" Text="<< Prev"  OnClick="lnkPrev_Click"
                    runat="server"></asp:LinkButton>
        
             &nbsp;  &nbsp;   <asp:LinkButton ID="lnkNext" Text="Next >>"  OnClick="lnkNext_Click"
                    runat="server"></asp:LinkButton></div>

2- Now put below code in .aspx.cs file

//Here we are setting DataList Page Size 6
       private static int pageSize = 6;
        private static int PageIndex = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            lblMsg.Text = "";

            try
            {
                if (!IsPostBack)
                {
                    ViewState["PageIndex"] = 0;
                }

                PageIndex = Convert.ToInt32(ViewState["PageIndex"]);
                LoadListData(PageIndex);
            }
            catch (Exception ex)
            {
                lblMsg.Text = ex.ToString();
            }
        }

 protected void LoadListData(int pageIndex)
        {
            double totalPages = 0;

            try
            {
                SPListItemCollection itemCollec = GetListItems();
                DataTable objDataTable = itemCollec.GetDataTable();

                if (itemCollec != null && itemCollec.Count > 0)
                {
                    totalPages = Math.Ceiling(Convert.ToDouble(objDataTable.Rows.Count) / Convert.ToDouble(pageSize));

                    PagedDataSource adsource = new PagedDataSource();
                    adsource.DataSource = objDataTable.DefaultView;
                    adsource.PageSize = 6;
                    adsource.AllowPaging = true;
                    adsource.CurrentPageIndex = pageIndex;              
                    lnkPrev.Enabled = !adsource.IsFirstPage;
                    lnkNext.Enabled = !adsource.IsLastPage;

                    lblMsg.Text = "Showing Page " + (pageIndex + 1).ToString() + " of " + totalPages;

                    datalst1.DataSource = adsource;
                    datalst1.DataBind();
                }
                else
                {
                    lblMsg.Text = "No record  found.";
                }
            }
            catch (Exception)
            {
                throw;
            }
        }

        public SPListItemCollection GetListItems()
        {
            SPListItemCollection _ItemColl = null;

            try
            {
                using (SPWeb _web = new SPSite(SPContext.Current.Site.Url).OpenWeb())
                {
                    SPList _list= _web.Lists["MyCustomList"];
                    SPQuery _query = new SPQuery();
                    _query.Query = "<Where><Eq><FieldRef Name='Author' LookupId='TRUE'/><Value Type='Integer'><UserID /></Value></Eq></Where><OrderBy><FieldRef Name='ID' Ascending='False' /></OrderBy>";
                    _ItemColl = _list.GetItems(_query);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return _ItemColl;
        }

protected void lnkPrev_Click(object sender, EventArgs e)
        {
            PageIndex = Convert.ToInt32(ViewState["PageIndex"]);
            PageIndex -= 1;
            ViewState["PageIndex"] = PageIndex;
            LoadListData(PageIndex);
        }

        protected void lnkNext_Click(object sender, EventArgs e)
        {
            PageIndex = Convert.ToInt32(ViewState["PageIndex"]);
            PageIndex += 1;
            ViewState["PageIndex"] = PageIndex;
            LoadListData(PageIndex);
        }


That's it.

No comments:

Post a Comment

SharePoint Deployment Error : The specified path, file name, or both are too long.

Hi, Sometimes we get surprised with below error while deploying wsp file... Solution : To overcome with this issue, we just ne...