Click here to Skip to main content
12,952,575 members (41,642 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
Hi,
My code looks like below. How to sort the gridview by clicking any of the column header? Let say sort it after done the search from gridview.
I already set the allow sorting = true and how should i code in below>


SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select top 1000 machineNameDisplay, equipment_type, frequency, formStatus, NextDueDate, cal_eqid from dbo.Obs_PMChkList_1 where v_dept = 'BGA EOL'";
 
        //DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        DataView dv = new DataView();
 
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        adp.Fill(dt);
        GridView1.DataSource = dt;
        dv = dt.DefaultView;
        //Session["values"] = dv;
        //BindData("");
        GridView1.DataBind();
        conn.Close();


protected void btnSearch_Click(object sender, EventArgs e)
    {
        string searchString = txtSearch.Text;
 
        foreach (GridViewRow row in GridView1.Rows)
        {
            TableCellCollection cells = row.Cells;
 
            foreach (TableCell cell in cells)
            {
                //if (cell.Text.ToLower().StartsWith(searchString.ToLower()))
                if (cell.Text.ToLower().StartsWith(searchString.ToLower()))
                {
                    break;
 
                }
                else
                {
                    //does not meet
                    cell.Visible = false;
                }
            }
        }
    }



protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
//How to code here?
}
Posted 25-Nov-12 22:16pm
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

nothing at all, It should working
  Permalink  
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 4

Hi,

1. My search function seems does not working as expected. My expected result is display the whole row but it does not. For eg, i search for "abc" and the 2nd column of the row contains "abc", system only display from second column onwards. I need it to display in whole row (include 1st cell).

2. After this, i need to sort it if click on the header. It have to able to sort it from my search result.

Please help!
  Permalink  
Comments
BabyOreo 5-Dec-12 2:08am
   
Following code solve my 2nd issue:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dt = ((DataSet)Session["myDataSet"]).Tables[0];
dt.DefaultView.Sort = e.SortExpression + " " + GetSortDirection(e.SortExpression);
GridView1.DataSource = dt;
GridView1.DataBind();
}

private string GetSortDirection(string column)
{
string sortDirection = "DESC";
string sortExpression = ViewState["SortExpression"] as string;

if (sortExpression != null)
{
if (sortExpression == column)
{
string lastDirection = ViewState["SortDirection"] as string;
if ((lastDirection != null) && (lastDirection == "DESC"))
{
sortDirection = "ASC";
}
}
}

ViewState["SortDirection"] = sortDirection;
ViewState["SortExpression"] = column;

return sortDirection;
}
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 5

I solved issue 1 with flag:
Appreciate who can help my second issue with provide some sample.
Thanks!

protected void btnSearch_Click(object sender, EventArgs e)
    {
        int flag;
        string searchString = txtSearch.Text;
 
        foreach (GridViewRow row in GridView1.Rows)
        {
            flag = 0;
            TableCellCollection cells = row.Cells;
 
            foreach (TableCell cell in cells)
            {
                //if (cell.Text.ToLower().StartsWith(searchString.ToLower()))
                if (cell.Text.ToLower().StartsWith(searchString.ToLower()))
                {
 
                    flag = 1;                    
                    break;
 
                }
                            }
             if (flag == 0 )
             {
                 row.Visible = false;
 
             }
        }
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 6,289
CHill60 3,490
Maciej Los 3,103
Jochen Arndt 1,975
ppolymorphe 1,900


Advertise | Privacy | Mobile
Web02 | 2.8.170525.1 | Last Updated 27 Nov 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100