asp.net gridview表頭排序程式碼(全部程式碼),供以後使用方便 VS2008
前臺檔案:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TQ_MRShort_Building.aspx.cs" Inherits="CropsMis.TQ_MRShort_Building" %>
<!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 id="Head1" runat="server">
<title>托克遜縣設施農業管理系統</title>
<link href="manager/images/Style.css" type="text/css" rel="stylesheet"/>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width:100%;" background="../images/left/e-bg.gif" >
<tr><td align="center" class="page_title">
<asp:Label ID="lblTitle" runat="server" Text="Label"></asp:Label></td></tr>
<tr><td style="height:2px;" class="page_title_Line"></td></tr>
<tr>
<td>
<asp:GridView ID="GridView1" runat="server" Width="98%" AllowSorting="True"
AllowPaging="True" BorderStyle="Solid"
BorderWidth="1px" BorderColor="#0FAAB8"
PageSize="18" CssClass="hei12"
AutoGenerateColumns ="False" DataKeyNames="材料ID"
onpageindexchanging="GridView1_PageIndexChanging"
onsorting="GridView1_Sorting" >
<PagerSettings Mode="NextPreviousFirstLast" FirstPageText="首頁" LastPageText="尾頁"
NextPageText="下一頁" PreviousPageText="上一頁" />
<HeaderStyle BackColor="#6fbb1b" Height="25" CssClass="cubaizi12" Font-Underline="false" ForeColor="white" />
<RowStyle BackColor="#E1FDD7" CssClass="cublue12" HorizontalAlign="Center" Height="25" BorderColor="#E4FDDF" />
<Columns>
<asp:BoundField DataField="機構ID" HeaderText="機構ID"
SortExpression="機構ID" Visible="False" />
<asp:BoundField DataField="材料ID" HeaderText="材料ID"
SortExpression="材料ID" Visible="False" />
<asp:BoundField DataField="機構名稱" HeaderText="鄉名稱"
SortExpression="機構名稱" ControlStyle-Width ="20%" />
<asp:BoundField DataField="機構簡稱" HeaderText="鄉簡稱"
SortExpression="機構簡稱" ControlStyle-Width ="20%" />
<asp:BoundField DataField="材料名稱" HeaderText="材料名稱"
SortExpression="材料名稱" ControlStyle-Width ="20%" />
<asp:BoundField DataField="材料規格" HeaderText="材料規格"
SortExpression="材料規格" ControlStyle-Width ="20%" />
<asp:BoundField DataField="計量單位" HeaderText="計量單位"
SortExpression="計量單位" ControlStyle-Width ="20%" />
<asp:BoundField DataField="在建溫室數量" HeaderText="在建溫室數量"
SortExpression="在建溫室數量" ControlStyle-Width ="20%" />
<asp:BoundField DataField="在建溫室材料需求量" HeaderText="在建溫室材料需求量"
SortExpression="在建溫室材料需求量" ControlStyle-Width ="20%" />
<asp:BoundField DataField="材料到貨數量" HeaderText="到貨數量"
SortExpression="材料到貨數量" ControlStyle-Width ="20%" />
<asp:BoundField DataField="到貨材料佔在建溫室需求材料百分比" HeaderText="到貨百分比"
SortExpression="到貨材料佔在建溫室需求材料百分比" ControlStyle-Width ="20%" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
後臺檔案 :
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace CropsMis
{
public partial class TQ_MRShort_Building : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
bindMyGridview();
string orgid = Request["orgid"].ToString();
string OrgName = BLL_crops.BLL_Org.GetTownShipName(orgid.ToString());
this.lblTitle.Text =OrgName+ "在建溫室材料到位及短缺統計";
}
}
private void bindMyGridview()
{
string Orgid = Request["orgid"].ToString();
DataTable dt_BuildingMrShort = BLL_crops.BLL_TQ.p_TQ_MRShort_Building(System.DateTime.Now.Year, int.Parse(Orgid));
this.GridView1.DataSource = dt_BuildingMrShort;
this.GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
if (e.NewPageIndex >= 0)
{
GridView1.PageIndex = e.NewPageIndex;
bindMyGridview();
}
}
private void SortGridView(string sortExpression, string direction)
{
string Orgid = Request["orgid"].ToString();
DataTable dt_BuildingMrShort = BLL_crops.BLL_TQ.p_TQ_MRShort_Building(System.DateTime.Now.Year, int.Parse(Orgid));
DataView dv = new DataView(dt_BuildingMrShort);
dv.Sort = sortExpression + direction;
// grv_Messenge.DataSource = dv; //將DataView繫結到GridView上
// grv_Messenge.DataBind();
this.GridView1.DataSource = dv;
this.GridView1.DataBind();
}
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection)ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;
if (GridViewSortDirection == SortDirection.Ascending) //設定排序方向
{
GridViewSortDirection = SortDirection.Descending;
SortGridView(sortExpression, " DESC");
}
else
{
GridViewSortDirection = SortDirection.Ascending;
SortGridView(sortExpression, " ASC");
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}
上面的程式碼中關鍵的程式碼是:
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;
if (GridViewSortDirection == SortDirection.Ascending) //設定排序方向
{
GridViewSortDirection = SortDirection.Descending;
SortGridView(sortExpression, " DESC");
}
else
{
GridViewSortDirection = SortDirection.Ascending;
SortGridView(sortExpression, " ASC");
}
}
private void SortGridView(string sortExpression, string direction)
{
string Orgid = Request["orgid"].ToString();
DataTable dt_BuildingMrShort = BLL_crops.BLL_TQ.p_TQ_MRShort_Building(System.DateTime.Now.Year, int.Parse(Orgid));
DataView dv = new DataView(dt_BuildingMrShort);
dv.Sort = sortExpression + direction;
this.GridView1.DataSource = dv;
this.GridView1.DataBind();
}
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection)ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}