--aspx页面添加AllowSorting="True" AutoGenerateColumns="false" SortExpression="f_start_date"
<asp:GridView ID="GridView1" runat="server" GridLines="Both" Width="97%" Font-Size="12px" AutoGenerateColumns="false" AllowSorting="True" OnSorting="GridView1_Sorting">
<Columns>
<asp:TemplateField HeaderText="#" HeaderStyle-Width="10%" ItemStyle-Width="10%">
<ItemTemplate>
<%# Container.DataItemIndex+1 %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="f_start_date" HeaderStyle-Width="20%" ItemStyle-Width="20%" HeaderText="起始时间" SortExpression="f_start_date"/>
<asp:BoundField DataField="f_end_date" HeaderText="终止时间" HeaderStyle-Width="20%" ItemStyle-Width="20%" SortExpression="f_end_date"/>
<asp:BoundField DataField="f_cause" HeaderText="休市原因" ItemStyle-Width="50%" HeaderStyle-Width="50%" SortExpression="f_cause"/>
</Columns>
</asp:GridView>
--后台.cs文件
conn co=new conn();
protected void Page_Load(object sender, EventArgs e)
{
protected void Page_Load(object sender, EventArgs e)
{
GridView1 .DataSource =bind();
GridView1.DataBind();
GridView1.DataBind();
}
public DataSet bind()
{
string str_select = "select * from tbl_admin";
DataSet ds = co.storenumshop(str_select);
return ds;
}
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)
{
DataTable tbl;
tbl = Cache["market_pause"] as DataTable;
if (tbl == null)
{
TimeSpan slidingExpiration = TimeSpan.FromHours(1);
DataTable tb = bind().Tables[0];
//设置时间为1小时,可延迟的缓存
Cache.Insert("market_pause", tb, null, System.Web.Caching.Cache.NoAbsoluteExpiration, slidingExpiration);
tbl = (DataTable)Cache["market_pause"];
}
DataTable dt = tbl;
DataView dv = new DataView(dt);
dv.Sort = sortExpression + direction;
GridView1.DataSource = dv; ;
GridView1.DataBind();
}
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection)ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}