GridView排序简单实现


使用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>

  后台:

  代码

  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();

  }

  }

使用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>

  后台:

  代码

  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();

  }

  }


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3