Front-end:
Code
Copy code The Code is as follows: <% @ page Language = "C #" autoeventwireup = "true" codefile = "gridviewsort. aspx. cs" inherits = "gridviewsort" %>
<! 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">
<Title> simple implementation of gridview sorting </title>
</Head>
<Body>
<Form ID = "form1" runat = "server">
<Div>
<Asp: gridview id = "gdvsort" runat = "server" onsorting = "gdvsort_sorting">
</ASP: gridview>
</Div>
</Form>
</Body>
</Html>
Background:
CodeCopy codeThe Code is as follows: using system;
Using system. Data;
Using system. configuration;
Using system. collections;
Using system. Web;
Using system. Web. Security;
Using system. Web. UI;
Using system. Web. UI. webcontrols;
Using system. Web. UI. webcontrols. webparts;
Using system. Web. UI. htmlcontrols;
Public partial class gridviewsort: system. Web. UI. Page
{
Protected void page_load (Object sender, eventargs E)
{
If (! Ispostback)
{
Viewstate ["sortorder"] = "PID ";
Viewstate ["orderdire"] = "DESC ";
BIND ();
}
}
Private void BIND ()
{
Gdvsort. allowsorting = true;
Dataview DV = getdt (). defaultview;
DV. Sort = (string) viewstate ["sortorder"] + "" + (string) viewstate ["orderdire"];
Gdvsort. datasource = DV;
Gdvsort. databind ();
}
/// <Summary>
/// Difficult to connect to the database, directly construct a datatable
/// </Summary>
/// <Returns> </returns>
Private datatable getdt ()
{
Datatable dt = new datatable ();
DT. Columns. Add ("PID", typeof (system. int32 ));
DT. Columns. Add ("username", typeof (system. String ));
For (INT I = 0; I <10; I ++)
{
Datarow DR = DT. newrow ();
Dr ["PID"] = I;
Dr ["username"] = "name" + I;
DT. Rows. Add (DR );
}
Return DT;
}
Protected void gdvsort_sorting (Object sender, gridviewsorteventargs E)
{
String spage = E. sortexpression;
If (viewstate ["sortorder"]. tostring () = spage)
{
If (viewstate ["orderdire"]. tostring () = "DESC ")
{
Viewstate ["orderdire"] = "ASC ";
}
Else
{
Viewstate ["orderdire"] = "DESC ";
}
}
Else
Viewstate ["sortorder"] = E. sortexpression;
BIND ();
}
}