1、效果图

2、前台代码

说明:红色代码为核心代码

<asp:GridView ID="gvData" runat="server" AutoGenerateColumns="False"
OnRowDataBound="gvData_RowDataBound"
onsorting="gvData_Sorting" AllowSorting="true"
>
<Columns>
<asp:TemplateField HeaderText="新闻标题">
<ItemTemplate>
<asp:Label ID="labtitle" runat="server" Text='<%# Bind("title") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="阅读量" SortExpression="count">
<ItemTemplate>
<asp:Label ID="labcount" runat="server" Text='<%# Bind("count") %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="15%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="添加人">
<ItemTemplate>
<asp:Label ID="labadmin" runat="server" Text='<%# Bind("adminName") %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="25%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="时间" SortExpression="ID">
<ItemTemplate>
添加:<asp:Label ID="labtime" runat="server" Text='<%# Bind("times") %>'></asp:Label>
<asp:Label ID="labtimepass" runat="server" Text='<%# Bind("timepass") %>'></asp:Label>
<br />
</ItemTemplate>
<ItemStyle Width="30%" />
</asp:TemplateField>
</Columns>
</asp:GridView>

3、后台代码

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["SortOrder"] = "ID";  //默认排序字段,必须
ViewState["OrderDire"] = "Desc"; //默认排序,必须
fillData();
}
}
protected void fillData()
{
    string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
    string sql = “select * from dt_news ”+sort;
    
    //datatable 自己写,绑定GridView自己写,我这里就不写了
  }
protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
{
//判断是否是表头
if (e.Row.RowType == DataControlRowType.Header)
{
//判断是否进行排序
//是否是排序字段信息
for (int i = ; i < e.Row.Cells.Count; i++)
{
ControlCollection cons= e.Row.Cells[i].Controls;
if (cons.Count == )
{
LinkButton lb = cons[] as LinkButton;
if (lb != null)
{
if (ViewState["SortOrder"].ToString() == lb.CommandArgument)
{
if (ViewState["OrderDire"].ToString() == "Desc")
{
lb.Text += "▼";
}
else
{
lb.Text += "▲";
}
}
}
}
}
}
}
protected void gvData_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;
}
PageControl1.pageNow = ;
fillData();
}

GridView表头排序方法设置的更多相关文章

  1. DBGridEh 点击表头排序方法

    方法1: (不用编程写代码) 程序中引用 单元 EhLibCDS设置DBGridEh的属性:      ColumnDefValues.Title.TitleButton = True      Op ...

  2. CList 点击表头排序 (2)两种排序方法中其中一种

    上一篇讲解SortItem()方法如何使用,虽然都是抄别人的但是就是想让大家有个大概的了解 CList 点击表头排序 (1)SortItems函数 点击表头排序基本思路都是 1.首先响应HDN_ITE ...

  3. gridview自定义排序

    效果如图: 首先允许排序:AllowSorting="True":开启gridview的排序事件onsorting="GridView1_Sorting",也可 ...

  4. CList 点击表头排序 (1)SortItems函数

    点击表头排序整体的思路都是去 CListCtrl类中的方法SortItems去实现 CListCtrl::SortItems的原型是: BOOL SortItems( PFNLVCOMPARE pfn ...

  5. JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)

    1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法.   2.有时候需要传递大量可选参数的情形时,一 ...

  6. php语言实现的7种基本的排序方法

    今天总结了一下常用的7种排序方法,并用php语言实现. 直接插入排序 /* * 直接插入排序,插入排序的思想是:当前插入位置之前的元素有序, * 若插入当前位置的元素比有序元素最后一个元素大,则什么也 ...

  7. javascript: 带分组数据的Table表头排序

    如下图: 要求:点击表头排序时,"分组"及"分组明细"的数据层次关系不变 从网上找了一段常规的table排序,改了改,以满足“分组支持”,贴在这里备份 < ...

  8. lucene之排序、设置权重、优化、分布式搜索(转)

    lucene之排序.设置权重.优化.分布式搜索(转) 1. 基本应用 using System;using System.Collections.Generic;using System.Text;u ...

  9. ## GridView 布局:item设置的高度和宽度不起作用、自动适配列数、添加Header和Footer ##

    一.item设置的高度和宽度不起作用 转自:http://www.cnblogs.com/0616--ataozhijia/p/6031875.html [Android Pro] listView和 ...

随机推荐

  1. segment fault

    http://blog.chinaunix.net/uid-23069658-id-3959636.html

  2. 学习Ember遇到的一些问题

    1.在模板中不能省略结束标签: 在Ember的模板中,如果省略结束标签的话,会有好多无解的问题(可能是:不更新.更新后结构不对.model和view不同步等),苦苦找了很久.... 2.childVi ...

  3. log4j安装与简介

    问题描述:     在应用程序中添加日志记录总的来说基于三个目的:    (1) 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:     (2) 跟踪代码运行时轨迹,作为日 ...

  4. C# textbox 滚动条 随文本输入 滚动

    tb_Log.SelectionStart = tb_Log.Text.Length;//设置光标位置 tb_Log.ScrollToCaret();//随文本输入 滚动

  5. Deep Learning and Shallow Learning

    Deep Learning and Shallow Learning 由于 Deep Learning 现在如火如荼的势头,在各种领域逐渐占据 state-of-the-art 的地位,上个学期在一门 ...

  6. 解决eclipse打开报错:failed to create the java virtual ma

    在Eclipse安装目录下找到:eclipse.ini 将如下参数改为: --launcher.XXMaxPermSize 128M ------------------------------- 说 ...

  7. 【锋利的JQuery-学习笔记】Tootip(提示框)

    效果图: 1.当鼠标移动到超链接时,有提示框. 2..当鼠标移动到图片动画旋转 html: <div id="jnNotice"> <div id="j ...

  8. sqlplus 远程oracle

    sqlplus dbuser/dbpassword@192.168.0.2/mydb sqlplus try/try@302-4 302-4为本地oralce  net manager 配置的网络名

  9. DiskGenius的 “终止位置参数溢出”错误解决方法。

    (转帖)同事电脑系统启动突然明显变慢,重装系统后问题仍未解决(windowsxp sp3).帮忙分析感觉是磁盘分区表出现了错误,用通用PE工具箱进入PE系统,DiskGenius工具检查:“终止位置参 ...

  10. hdu 1253 胜利大逃亡(广搜,队列,三维,简单)

    题目 原来光搜是用队列的,深搜才用栈,我好白痴啊,居然搞错了 三维的基础的广搜题 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #in ...