Skip to main content

Gridview sorting Example in ASP.NET

Introduction

Sorting means arranging your data either in ascending order or descending order. But, why we do perform sorting between data? The answer is to increase the speed of readability. So, we need sorted data. Various types of sorting Technique is available like merge sort, quick sort, bubble sort, selection sort, insertion sort and etc. Here, I perform sorting in the GridView. Actually this control provide built in sorting functionality so no code is required for it. But, I will give you example of sorting by using code behind file. Sorting and sorted event of this control provide you to customize the sort functionality like you can use either ViewState or other technique.  First of all I would like to talk about inbuilt functionality which is provide by this control. Let see the example

Step-1 : Create a DataBase table in Visual Studio
Step-2 : Bind GridView with SqlDataSource control
Step-3 : Select 'Enable Sorting' CheckBox for sorting.
Gridview sorting in ASP.NET

Code generate the following output

Gridview sorting Example in ASP.NET

Gridview sorting Example in ASP.NET

Complete Source Code with AllowSorting="True" property

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AllowSorting="True" 
            AutoGenerateColumns="False" DataKeyNames="sno" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="sno" HeaderText="sno" ReadOnly="True" 
                    SortExpression="sno" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="Address" HeaderText="Address" 
                    SortExpression="Address" />
            </Columns>
        </asp:GridView>  
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            SelectCommand="SELECT * FROM [userdata]"></asp:SqlDataSource>
    </div>
    </form>
</body>
</html>
If you bind the GridView control with the SqlDataSource. GridView provide functionality to sort the column without any coding. With the help of allowSorting property of this control you can make column as linkButon, i mean to say LinkButton controls displayed at the top of each column of the grid lets see the output of the above mentioned program. Now to the second part that is sorting through code behind file:

II Method (Sorting through Code Behind file)

Here, i will use ViewState, SortDirection and SortExpression for sorting. With the help of SortDirection enumeration we can retrieve sort order of the column. Also access the last state information of Post Back event by using ViewState. Let see the example

  1. First to add the GridView control to the design page.
  2. Bind this control with the DataTable.
  3. Copy this code and paste into your code behind file

    private void bindgridview()
    {
        var data = getDataTable();
        GridView1.DataSource = data;
        GridView1.DataBind();

    }

    private DataTable getDataTable()
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString=ConfigurationManager.ConnectionStrings["btti"].ToString();
        con.Open();
        SqlCommand cmd=new SqlCommand();
        cmd.CommandText = "select * from [register]";
        cmd.Connection=con;
        SqlDataAdapter da=new SqlDataAdapter(cmd);
        DataSet ds=new DataSet();
        da.Fill(ds);
        return ds.Tables[0];

    }
  1. Now, perform Customization in the sorting by using GridView_Sorting event.
  2. Copy this code in the same code behind file.
  protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        string sortExp = e.SortExpression;
        string direction = string.Empty;
        if(SortDir==SortDirection.Ascending)
        {
            SortDir = SortDirection.Descending;
            direction = "DESC";
        }
        else
        {
            SortDir = SortDirection.Ascending;
            direction = "ASC";
        }
        DataTable dt = getDataTable();
        dt.DefaultView.Sort = sortExp +" " + direction;
        GridView1.DataSource = dt;
        GridView1.DataBind();



    }


    public SortDirection SortDir
    {
        get {
        if(ViewState["SortDir"]==null)
        {
            ViewState["SortDir"] = SortDirection.Ascending;
        }
        return (SortDirection)ViewState["SortDir"];
        
        }
        set {

            ViewState["SortDir"] = value;
        }
    } 
Here, SortDir is the public property through this we can access ViewState Information. When first time page is loaded ViewState contain null value so the sorted order is default ascending. So, SortDir key of it contain Descending order with the DESC string direction. When we click on any link button which is mentioned with the table column it rearrange the column according to SortExpression (table Column) and Direction.

Comments

Popular posts from this blog

difference between structure and union in C Language

In c language article we will see the difference between union and structure. Both are the user define datatype in c language. See the table which is mentioned below: ASP.NET Video Tutorial Series Structure Union1.The keywordstruct is used to define a structure 1. The keyword union is used to define a union. 2. When a variable is associated with a structure, the compiler allocates the memory for each member. The size of structure is greater than or equal to the sum ofsizes of its members. The smaller members may end with unused slack bytes. 2. When a variable is associated with a union, thecompiler allocates thememory by considering the size of the largest memory. So, size of union is equal to the size of largest member. 3. Each member within a structure is assigned unique storage area of location. 3. Memory allocated is shared by individual members of union. 4. The address of each member will be in ascending order This indicates that memory for each member will start at different offset v…

Difference between Linear search and Binary Search in c language

SQL Video Channel : Download all SQL Video



Binary Search Linear Search Works only on sorted items. such as  1,2,3,4,5,6  etc
Works on sorted as well as unsorted items. 12,4,5,3,2,1 etc Very efficient if the items are sorted Very efficient if the items are less and present in the beginning of the list. such as Suppose your list items are : 12,3,4,5,1 and you want to search 12 number then you get beginning in the list. Works well with arrays and not on linked lists. Works with arrays and linked lists.
Number of comparisons are less More number of comparisons are required if the items are present in the later part of the array or its elements are more.

Memory representation of Linked List Data Structures in C Language

Memory representation of Linked List

             In memory the linked list is stored in scattered cells (locations).The memory for each node is allocated dynamically means as and when required. So the Linked List can increase as per the user wish and the size is not fixed, it can vary.

               Suppose first node of linked list is allocated with an address 1008. Its graphical representation looks like the figure shown below:


      Suppose next node is allocated at an address 506, so the list becomes,



  Suppose next node is allocated with an address with an address 10,s the list become,


The other way to represent the linked list is as shown below:




 In the above representation the data stored in the linked list is “INDIA”, the information part of each node contains one character. The external pointer root points to first node’s address 1005. The link part of the node containing information I contains 1007, the address of next node. The last node …