Pages

Sunday, 29 April 2012

How to Write code for Paging in Grid view

----->>take one datalist for Paging



<asp:DataList ID="dlPaging" runat="server" RepeatDirection="Horizontal" RepeatColumns="0"
                        OnItemCommand="dlPaging_ItemCommand" OnItemDataBound="dlPaging_ItemDataBound">
                        <ItemTemplate>
                            <table>
                                <tr>
                                    <td>
                                        <asp:LinkButton ID="lnkbtnPaging" runat="server" CommandArgument="<%# Container.DataItem %>"
                                            Text='<%# Container.DataItem %>' CommandName="lnkbtnPaging" CssClass="button1"></asp:LinkButton>
                                    </td>
                                    <td width="2">
                                    </td>
                                </tr>
                            </table>
                        </ItemTemplate>
                    </asp:DataList>

----->>write C# code for paging


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class people : System.Web.UI.Page
{
    double rowCount;
    string count = "";
    string cname = "";
    string queryCount;
    double pageNo;
    int pgNo;
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);

    protected void Page_Load(object sender, EventArgs e)
    {
        HtmlAnchor ach = (HtmlAnchor)Master.FindControl("b1");
        ach.Attributes.Add("class", "activ");
        if (!Page.IsPostBack)
        {
            if (Session["Userid"] != null)
            {
                Panel p1 = (Panel)Master.FindControl("WelcomePanel");
                p1.Visible = true;
                Panel p2 = (Panel)Master.FindControl("signpanel");
                p2.Visible = false;
                Label l1 = (Label)Master.FindControl("lblName");
                l1.Text = Session["name"].ToString();
            }
            else
            {
                Panel p1 = (Panel)Master.FindControl("WelcomePanel");
                p1.Visible = false ;
                Panel p2 = (Panel)Master.FindControl("signpanel");
                p2.Visible = true;
            }
            getpeopleadds();
            getpeoples();
            DisplayCompanyDetails();
        }
     
         
     
    }
    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 DisplayCompanyDetails()
    {
        string cn = "";
        string qry = "";
        int start = Convert.ToInt32(CurrentPage * 3 + 1);
        int end = start + 3;
        DataTable dt = new DataTable();
        DataSet ds = new DataSet();


        //qry = "set  sql_select_limit=40;select * from Directory where Status='Y' order by  Cid limit " + start + " ," + end;
        qry = "select * from( SELECT *, ROW_NUMBER() OVER (ORDER BY PeopleId desc) as row FROM Peoples ) a WHERE Status='Y' and row >=" + start + " and row <" + end;




        SqlCommand cmd = new SqlCommand(qry, con);
        con.Open();
        cmd.ExecuteNonQuery();
        SqlDataAdapter dataAdapter = new SqlDataAdapter();

        dataAdapter.SelectCommand = cmd;
        dataAdapter.Fill(ds);
        SqlCommand cmd1 = new SqlCommand("GetCount", con);
        cmd1.CommandType = CommandType.StoredProcedure;

        rowCount =Convert.ToInt32( cmd1.ExecuteScalar());
        dataAdapter.Dispose();
        con.Close();



        dt = ds.Tables[0];
        if (dt.Rows.Count > 0)
        {
            grdCategory .DataSource = dt;
            grdCategory.DataBind();
            dlPaging.Visible = true;
            doPaging();
        }
        else
        {
            lnkbtnNext.Visible = false;
            lnkbtnPrevious.Visible = true ;
            dlPaging.Visible = true ;
        }
    }

    private void doPaging()
    {
        pageNo = Math.Floor(rowCount / 3);
        if (pageNo != 0 && rowCount > 3)
        {
            pageNo = pageNo + 1;
        }
        else
        {
            pageNo = pageNo;
        }


        pgNo = Convert.ToInt32(pageNo);
        if (pgNo == 0)

            lnkbtnNext.Visible = false;
        ArrayList arr = Return_Pagination_Link(pgNo, 3, CurrentPage);

        if (rowCount > 1)
        {
            dlPaging.Visible = true;
            dlPaging.DataSource = arr;
            dlPaging.DataBind();

        }
        else
        {
            dlPaging.Visible = false;
        }

        if (CurrentPage == 0)
        {
            if (CurrentPage == (pgNo - 1))
            {
                dlPaging.Visible = false;
                lnkbtnNext.Visible = false;
            }

            lnkbtnPrevious.Visible = false;
        }

        if (CurrentPage < pageNo)

            lnkbtnNext.Visible = true;
        if (CurrentPage == (pageNo - 1))
        {
            lnkbtnNext.Visible = false;
        }

    }
    protected void lnkbtnPrevious_Click(object sender, EventArgs e)
    {
        CurrentPage -= 1;
        DisplayCompanyDetails();
    }


    protected void lnkbtnNext_Click(object sender, EventArgs e)
    {

        CurrentPage += 1;
        lnkbtnPrevious.Visible = true;
        DisplayCompanyDetails();
    }


    protected void dlPaging_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName.Equals("lnkbtnPaging"))
        {
            CurrentPage = Convert.ToInt16(e.CommandArgument.ToString()) - 1;
            lnkbtnPrevious.Visible = true;

            DisplayCompanyDetails();
            //DisplayCompanyDetails1();

        }
    }
    protected void dlPaging_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging");
        if (int.Parse(lnkbtnPage.CommandArgument.ToString()) - 1 == CurrentPage)
        {
            lnkbtnPage.Enabled = false;
            lnkbtnPage.Font.Bold = false;
            lnkbtnPage.ForeColor = System.Drawing.Color.OrangeRed;
         

        }
    }
    public ArrayList Return_Pagination_Link(int TotalPages, int Total_Links, int SelectedPage)
    {
        int i = 1;
        ArrayList arr = new ArrayList();
        if (TotalPages < Total_Links)
        {

            for (i = 1; i <= TotalPages; i++)
            {

                arr.Add(i);

            }

        }
        else
        {

            int startindex = SelectedPage;
            int lowerbound = startindex - (Total_Links / 2);
            int upperbound = startindex + (Total_Links / 2);

            if (lowerbound < 1)
            {
                //calculate the difference and increment the upper bound
                upperbound = upperbound + (1 - lowerbound);
                lowerbound = 1;
            }
            //if upperbound is greater than total page is
            if (upperbound > TotalPages)
            {
                //calculate the difference and decrement the lower bound
                lowerbound = lowerbound - (upperbound - TotalPages);
                upperbound = TotalPages;
            }
            for (i = lowerbound; i <= upperbound; i++)
            {
                arr.Add(i);
            }
        }
        return arr;
    }



No comments:

Post a Comment