Blog

Share this blog : twitter

Jul 10

Written by: IOTAP ::-- DotNet Team
7/10/2008 12:04 PM 

Following is the source code for Gridview sorting ad Paging which is done without Datasource Control

 

MarkUp:

 <asp:TextBox ID="txtBulletinName" runat="server" width="100px">asp:TextBox>asp:Button CssClass="SubmitButton" ID="btnView" runat="server" Text="View List" OnClick="btnView_Click" />

 <asp:GridView BorderColor="#990000" ID="gvEmailList" runat="server" AutoGenerateColumns="false" AllowPaging="true" AllowSorting="true" PageSize="5" OnPageIndexChanging="gvEmailList_PageIndexChanging" OnSorting="gvEmailList_Sorting">

<Columns>

<asp:BoundField HeaderStyle-CssClass="HeaderText" ItemStyle-CssClass="ItemText" DataField="CustomerId" HeaderText="Customer ID" SortExpression="CustomerId" />

<asp:BoundField HeaderStyle-CssClass="HeaderText" ItemStyle-CssClass="ItemText" DataField="FirstName" HeaderText="First Name" SortExpression="FirstName" />


<asp:BoundField HeaderStyle-CssClass="HeaderText" ItemStyle-CssClass="ItemText" DataField="LastName" HeaderText="Last Name" SortExpression="LastName" />

 <asp:BoundField HeaderStyle-CssClass="HeaderText" ItemStyle-CssClass="ItemText" DataField="EmailAddress" HeaderText="Email Address"/
 
<asp:BoundField HeaderStyle-CssClass="HeaderText" ItemStyle-CssClass="ItemText" DataField="BulletinName" HeaderText="Bulletin Name"/>
 

<asp:BoundField HeaderStyle-CssClass="HeaderText" ItemStyle-CssClass="ItemText" DataField="EmailType" HeaderText="Email Type" />
 
</Columns>
 

 

Codebehind:

  void btnView_Click(object sender, EventArgs e)
 {
    PopulateGridView();
 }


   public void PopulateGridView()
    {
        try
        {
            SqlConnection sqlCon = new SqlConnection(strOnyxConnectionString);
            SqlCommand sqlCmd = new SqlCommand("SProcName", sqlCon);
            sqlCmd.CommandType = CommandType.StoredProcedure;

            sqlCmd.Parameters.Add("@Param1", SqlDbType.VarChar);
            sqlCmd.Parameters["@Param1"].Value = txtBulletinName.Text;

           
            EmailListDS = new DataSet();
            SqlDataAdapter emailAdapter = new SqlDataAdapter(sqlCmd);
            emailAdapter.Fill(EmailListDS, "Tbl_EmailList");

            if (EmailListDS.Tables["Tbl_EmailList"] != null )
            {
                DataTable dt = EmailListDS.Tables["Tbl_EmailList"] as DataTable;
                if (dt != null)
                {
                    gvEmailList.Visible = true;
                    lblPaging.Visible = true;
                    DataView dv = new DataView(dt);
                    dv.Sort = "LastName ASC";
                    gvEmailList.DataSource = dv;
                    gvEmailList.DataBind();
                    lblPaging.Text = "You are Viewing Page " + Convert.ToInt32(gvEmailList.PageIndex + 1) + " of " + gvEmailList.PageCount + " for " + drpEmailFormat.SelectedItem.Text;
                }
            }
            else
            {
                gvEmailList.Visible = false;
                lblPaging.Visible = false;
                lblMessage.Text = "No Records found";
            }
        }
        catch (Exception Ex)
        {
            lblMessage.Text = Ex.ToString();
        }
    }

 
//Method that sorts data

 protected DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)
    {

        if (dataTable != null)
        {
            DataView dataView = new DataView(dataTable);
            if (GridViewSortExpression != string.Empty)
            {
                if (isPageIndexChanging)
                {
                    dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection);
                }
                else
                {
                    dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GetSortDirection());
                }
            }
            else
            {
                dataView.Sort = string.Format("{0} {1}", "LastName", "ASC");
            }

            return dataView;
        }
        else
        {
            return new DataView();
        }

    }

 

 private string GridViewSortDirection
    {
        get { return ViewState["SortDirection"] as string ?? "ASC"; }

        set { ViewState["SortDirection"] = value; }
    }


    private string GetSortDirection()
    {
        switch (GridViewSortDirection)
        {
            case "ASC":
                GridViewSortDirection = "DESC";
                break;

            case "DESC":
                GridViewSortDirection = "ASC";
                break;
        }
        return GridViewSortDirection;
    }


    private string GridViewSortExpression
    {
        get { return ViewState["SortExpression"] as string ?? string.Empty; }
        set { ViewState["SortExpression"] = value; }
    }

 

protected void gvEmailList_Sorting(object sender, GridViewSortEventArgs e)
    {
        try
        {
            GridViewSortExpression = e.SortExpression;
            int pageIndex = gvEmailList.PageIndex;
            gvEmailList.DataSource = SortDataTable(EmailListDS.Tables[0] as DataTable, false);
            gvEmailList.DataBind();
            gvEmailList.PageIndex = pageIndex;
        }
        catch (Exception Ex)
        {
            lblMessage.Text = Ex.ToString();
        }
    }

protected void gvEmailList_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvEmailList.DataSource = SortDataTable(EmailListDS.Tables[0] as DataTable, true);
        gvEmailList.PageIndex = e.NewPageIndex;
        gvEmailList.DataBind();
        lblPaging.Text = "You are Viewing Page " + Convert.ToInt32(gvEmailList.PageIndex + 1) + " of " + gvEmailList.PageCount + " for " + drpEmailFormat.SelectedItem.Text;

    }

Tags:

Your name:
Your email:
(Optional) Email used only to show Gravatar.
Your website:
Title:
Comment:
Security Code
Enter the code shown above in the box below
Add Comment   Cancel 


 
 
 

IOTAP is an IT Consulting and Software Services Company with global delivery centers in Mumbai and Chennai, India. We are a Microsoft Gold Certified Partner and use products and technologies like Dynamics CRM, SharePoint, Silverlight, and the .Net platform to create solutions that help our customers connect, communicate and collaborate effectively