views:

7

answers:

1

Following Code is for Sorting GridView Formed With DataSet

Source: http://www.highoncoding.com/Articles/176_Sorting_GridView_Manually_.aspx

But it is not displaying any output. There is no problem in sql connection. I am unable to trace the error, please help me. Thank You.

public partial class _Default : System.Web.UI.Page {

private const string ASCENDING = " ASC";
private const string DESCENDING = " DESC";

private DataSet GetData()
{
     SqlConnection cnn = new SqlConnection("Server=localhost;Database=Northwind;Trusted_Connection=True;");
     SqlDataAdapter da = new SqlDataAdapter("SELECT TOP 5 firstname,lastname,hiredate FROM EMPLOYEES", cnn);
     DataSet ds = new DataSet();
     da.Fill(ds);
     return ds;
}

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

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
    string sortExpression = e.SortExpression;
    if (GridViewSortDirection == SortDirection.Ascending)
    {
        GridViewSortDirection = SortDirection.Descending;
        SortGridView(sortExpression, DESCENDING);
    }
    else
    {
        GridViewSortDirection = SortDirection.Ascending;
        SortGridView(sortExpression, ASCENDING);
    }
}

private void SortGridView(string sortExpression, string direction)
{

    // You can cache the DataTable for improving performance
    DataTable dt = GetData().Tables[0];
    DataView dv = new DataView(dt);
    dv.Sort = sortExpression + direction;
    GridView1.DataSource = dv;
    GridView1.DataBind();

}

}

aspx page

asp:GridView ID="GridView1" runat="server" AllowSorting="True" OnSorting="GridView1_Sorting">

/asp:GridView>

A: 

Problem is with Page Load event when you fill the data you add it inside if(!IsPostBack) condition .

nani