Pages

Monday, March 11, 2013

ASP.net Gridview sorting

private string ConvertSortDirectionToSql(String sortExpression,SortDirection sortDireciton)
{
        switch (sortExpression)
{
case "DealCRMID":
ViewState["DealCRMID"]=ChangeSortDirection(ViewState["DealCRMID"].ToString());
return ViewState["DealCRMID"].ToString();
case "DealCustomerName":
ViewState["DealCustomerName"] = ChangeSortDirection(ViewState["DealCustomerName"].ToString());
return ViewState["DealCustomerName"].ToString();
case "SLCode":
ViewState["SLCode"] = ChangeSortDirection(ViewState["SLCode"].ToString());
return ViewState["SLCode"].ToString();
default:
return "ASC";
}
}
private string ChangeSortDirection(string sortDireciton)
{ switch (sortDireciton)
{ case "DESC":
return "ASC";
case "ASC":
return "DESC";
default:
return "ASC";

}
}



protected void gvPendingApprovals_Sorting(object sender, GridViewSortEventArgs e)
{
DataSet ds = (System.Data.DataSet)(gvPendingApprovals.DataSource);
if(ds.Tables.Count>0)
{
DataView m_DataView = new DataView(ds.Tables[0]);

m_DataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortExpression.ToString(), e.SortDirection);

gvPendingApprovals.DataSource = m_DataView;

gvPendingApprovals.DataBind();

}

}



Markup:

<asp:BoundField DataField="DealCRMID" HeaderText="Opportunity ID" SortExpression="DealCRMID"/>

<asp:BoundField DataField="DealCustomerName" HeaderText="Customer" SortExpression="DealCustomerName"/>

<asp:BoundField DataField="SLCode" HeaderText="Practice" SortExpression="SLCode"/>

No comments:

Post a Comment