GridView表头排序方法设置
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表头排序方法设置的更多相关文章
- DBGridEh 点击表头排序方法
方法1: (不用编程写代码) 程序中引用 单元 EhLibCDS设置DBGridEh的属性: ColumnDefValues.Title.TitleButton = True Op ...
- CList 点击表头排序 (2)两种排序方法中其中一种
上一篇讲解SortItem()方法如何使用,虽然都是抄别人的但是就是想让大家有个大概的了解 CList 点击表头排序 (1)SortItems函数 点击表头排序基本思路都是 1.首先响应HDN_ITE ...
- gridview自定义排序
效果如图: 首先允许排序:AllowSorting="True":开启gridview的排序事件onsorting="GridView1_Sorting",也可 ...
- CList 点击表头排序 (1)SortItems函数
点击表头排序整体的思路都是去 CListCtrl类中的方法SortItems去实现 CListCtrl::SortItems的原型是: BOOL SortItems( PFNLVCOMPARE pfn ...
- JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)
1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法. 2.有时候需要传递大量可选参数的情形时,一 ...
- php语言实现的7种基本的排序方法
今天总结了一下常用的7种排序方法,并用php语言实现. 直接插入排序 /* * 直接插入排序,插入排序的思想是:当前插入位置之前的元素有序, * 若插入当前位置的元素比有序元素最后一个元素大,则什么也 ...
- javascript: 带分组数据的Table表头排序
如下图: 要求:点击表头排序时,"分组"及"分组明细"的数据层次关系不变 从网上找了一段常规的table排序,改了改,以满足“分组支持”,贴在这里备份 < ...
- lucene之排序、设置权重、优化、分布式搜索(转)
lucene之排序.设置权重.优化.分布式搜索(转) 1. 基本应用 using System;using System.Collections.Generic;using System.Text;u ...
- ## GridView 布局:item设置的高度和宽度不起作用、自动适配列数、添加Header和Footer ##
一.item设置的高度和宽度不起作用 转自:http://www.cnblogs.com/0616--ataozhijia/p/6031875.html [Android Pro] listView和 ...
随机推荐
- 【转发】SSH无密码登录的配置
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:http://cn.soulmachine.me/ 原文地址:http ...
- effect state dx11
一个blendstate { BlendEnable[0]=TRUE; SrcBlend[0]=ONE; DestBlend[]=ONE; BlendOp[0]=ADD; } [0]-----一次混合 ...
- 浏览器后退按钮导致jquery动态添加的select option值丢失的解决方法
监控浏览器返回功能 判断浏览器返回功能 禁用浏览器的后退按钮 JS禁止浏览器后退键 http://volunteer521.iteye.com/blog/830522/ 浏览器返回功能 判断上一页面来 ...
- linux源码阅读笔记 asm函数
在linux源码中经常遇到__asm__函数.它其实是函数asm的宏定义 #define __asm__ asm,asm函数让系统执行汇编语句. __asm__常常与__volatile__一起出现. ...
- 比較Backbone.js, Angular.js, Ember.js, Knockout.js 心得
還記得第一次寫網站的時候,我無意間寫成了 SPA(single page application),當時還沒有SPA這個詞,後來因為廣告主需要不同 url location 頁面的廣告展示,只好把部分 ...
- SGU 114
114. Telecasting station time limit per test: 0.25 sec. memory limit per test: 4096 KB Every city in ...
- zoj 3599 Game 博弈论
K倍动态减法游戏!!! 链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4683 代码如下: #include<ios ...
- C Primer Plus之高级数据表示
抽象数据类型(ADT) 类型是由什么组成?一个类型(type)指定两类信息:一个属性集和一个操作集. 所以您想定义一个新的数据类型.首先,您需要提供存储数据的方式,可能是通过设计一个结构.第二 ...
- lintcode:Flip Bits 将整数A转换为B
题目: 将整数A转换为B 如果要将整数A转换为B,需要改变多少个bit位? 样例 如把31转换为14,需要改变2个bit位. ()10=()2 ()10=()2 挑战 你能想出几种方法? 解题: A- ...
- 使用apt-fast 来加速你的Ubuntu 的apt
使用apt-fast 来加速你的Ubuntu 的apt sudo add-apt-repository ppa:apt-fast/stable sudo apt-get update sudo apt ...