asp.net GridView排序簡單實現(xiàn)
更新時間:2009年12月10日 22:33:17 作者:
使用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排序簡單實現(xiàn)</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>
/// 連數(shù)據(jù)庫麻煩,直接構(gòu)造一個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();
}
}
代碼
復(fù)制代碼 代碼如下:
<%@ 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排序簡單實現(xiàn)</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gdvSort" runat="server" OnSorting="gdvSort_Sorting">
</asp:GridView>
</div>
</form>
</body>
</html>
后臺:
代碼
復(fù)制代碼 代碼如下:
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>
/// 連數(shù)據(jù)庫麻煩,直接構(gòu)造一個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();
}
}
相關(guān)文章
asp.net 讀取xml文件里面的內(nèi)容,綁定到dropdownlist中
asp.net 讀取xml文件里面的內(nèi)容,綁定到dropdownlist中的實現(xiàn)代碼。2009-05-05
Asp.Net 網(wǎng)站優(yōu)化系列之?dāng)?shù)據(jù)庫優(yōu)化分字訣上 分庫
當(dāng)我們的數(shù)據(jù)量很小的時候,我們會把用戶表,博客表,論壇表,閃存表等等都砸在一個庫里,我們的業(yè)務(wù)增長的很好,在不久之后我們盡力的優(yōu)化了查詢,但是效果依然不佳,這時候用分字訣的時機(jī)到了。2010-06-06
Visual Studio 2015和 .NET Core安裝教程
這篇文章主要為大家詳細(xì)介紹了Visual Studio Community 2015和 .NET Core安裝圖文教程,感興趣的小伙伴們可以參考一下2016-07-07
asp.net下Request.QueryString取不到值的解決方法
2008-01-01
.NET?Core配置TLS?Cipher(套件)的詳細(xì)過程
本文以.NET?5為例,只不過針對.NET?Core?3或3.1通過工具掃描出的協(xié)議套件結(jié)果略有所差異,但不影響我們對安全套件的配置,我們使用OpenSSL生成自簽名證書,對.NET?Core配置TLS?Cipher相關(guān)知識感興趣的朋友一起看看吧2021-12-12

