使用javascript操作table排序才是实用的排序,这样排序不怎么好,但是有时候可能会用来,记录一下。
前台:
代码
<%
@ 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 > GridView排序简单实现 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="gdvSort" runat ="server" OnSorting ="gdvSort_Sorting" >
</ asp:GridView >
</ div >
</ form >
</ body >
</ html >
<! 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 > GridView排序简单实现 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="gdvSort" runat ="server" OnSorting ="gdvSort_Sorting" >
</ asp:GridView >
</ div >
</ form >
</ body >
</ html >
后台:
代码
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>
/// 连数据库麻烦,直接构造一个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 " ] = " 姓名 " + 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();
}
}
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>
/// 连数据库麻烦,直接构造一个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 " ] = " 姓名 " + 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();
}
}