Thursday, August 23, 2012

ASP: Gridview Sorting

 protected void RG_ItemNameSearch_sorting(object sender, GridViewSortEventArgs e)
    {
        string sortingDirection = string.Empty;
        if (dir == SortDirection.Ascending)
        {
            dir = SortDirection.Descending;
            sortingDirection = "Desc";
        }
        else
        {
            dir = SortDirection.Ascending;
            sortingDirection = "Asc";
        }
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("SNO", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("MaterialId", typeof(System.Int64)));
        dt.Columns.Add(new DataColumn("MaterialAbbr", typeof(System.String)));
        dt.Columns.Add(new DataColumn("MaterialName", typeof(System.String)));
        dt.Columns.Add(new DataColumn("UnitId", typeof(System.Int64)));
        dt.Columns.Add(new DataColumn("UnitName", typeof(System.String)));
        dt.Columns.Add(new DataColumn("SaleUnitNumbers", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("SalePrice", typeof(System.Decimal)));
        dt.Columns.Add(new DataColumn("PurchaseUnit", typeof(System.Int64)));
        dt.Columns.Add(new DataColumn("BatchNo", typeof(System.String)));
        dt.Columns.Add(new DataColumn("SALEQTYOFSU", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("SALEQTYOFPU", typeof(System.Int32)));
        List<MaterialDetailsSearch> lstMaterialDetailsSearch = new List<MaterialDetailsSearch>();
        if(Session["MaterialsSearch"]!=null)
            lstMaterialDetailsSearch = (List<MaterialDetailsSearch>)Session["MaterialsSearch"];

        if (lstMaterialDetailsSearch != null && lstMaterialDetailsSearch.Count > 0)
        {
            foreach (MaterialDetailsSearch objMaterialDetailsSearch in lstMaterialDetailsSearch)
            {

                DataRow row = dt.NewRow();
                //  row[0] = objInvGrnReturnDetails.MaterialId;
                row[1] = objMaterialDetailsSearch.MaterialId;
                row[2] = objMaterialDetailsSearch.MaterialAbbr;
                row[3] = objMaterialDetailsSearch.MaterialName;
                row[4] = objMaterialDetailsSearch.UnitId;
                row[5] = objMaterialDetailsSearch.UnitName;
                row[6] = objMaterialDetailsSearch.SaleUnitNumbers;
                row[7] = objMaterialDetailsSearch.SalePrice;
                row[8] = objMaterialDetailsSearch.PurchaseUnit;
                row[9] = objMaterialDetailsSearch.BatchNo;
                row[10] = objMaterialDetailsSearch.SALEQTYOFSU;
                row[11] = objMaterialDetailsSearch.SALEQTYOFPU;
                dt.Rows.Add(row);

            }

        }
        DataView sortedView = new DataView(dt);
        sortedView.Sort = e.SortExpression + " " + sortingDirection;
        RG_ItemNameSearch.DataSource = sortedView;
        RG_ItemNameSearch.DataBind();
    }
    public SortDirection dir
    {
        get
        {
            if (ViewState["dirState"] == null)
            {
                ViewState["dirState"] = SortDirection.Ascending;
            }
            return (SortDirection)ViewState["dirState"];
        }
        set
        {
            ViewState["dirState"] = value;
        }
    }