Repeater 双向排序
效果如下图:
下载原代码:/Files/vaiyanzi/Attch/RepeaterOrder.rar
前台Html代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>RepeaterOrderForm</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<table border=1 bordercolor=#330033 bordercolordark=#999933 bordercolorlight=black>
<tr>
<td colspan=5 align=center><font color=blue size=12>Repeater实现双向排序功能</font></td>
</tr>
<asp:Repeater id="rpOrder" runat="server">
<HeaderTemplate>
<tr align=center >
<td>
<asp:LinkButton ID="LastName" Runat="server" text="LastName" CommandName="LastName"></asp:LinkButton></td>
<td>
<asp:LinkButton ID="FirstName" Runat="server" text="FirstName" CommandName="FirstName"></asp:LinkButton></td>
<td>
<asp:LinkButton ID="Title" Runat="server" text="Title" CommandName="Title"></asp:LinkButton></td>
<td>
<asp:LinkButton ID="Address" Runat="server" text="Address" CommandName="Address"></asp:LinkButton></td>
<td>
<asp:LinkButton ID="City" Runat="server" text="City" CommandName="City"></asp:LinkButton></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"LastName")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"FirstName")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"Title")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"Address")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"City")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</form>
</body>
</HTML>
后台CS文件:
1using System;
2using System.Collections;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Web;
7using System.Web.SessionState;
8using System.Web.UI;
9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11using System.Data.SqlClient;
12using System.Configuration;
13
14namespace RepeaterOrder
15{
16 /**//// <summary>
17 /// RepeaterOrderForm 的摘要说明。
18 /// </summary>
19 public class RepeaterOrderForm : System.Web.UI.Page
20 {
21 protected System.Web.UI.WebControls.Repeater rpOrder;
22 private readonly string CONNECTIONSTRING=ConfigurationSettings.AppSettings["ConnectionString"];
23 private void Page_Load(object sender, System.EventArgs e)
24 {
25 if(!IsPostBack)
26 {
27 BindRepeater();
28 }
29 }
30 private DataView GetData
31 {
32 get
33 {
34 return Cache["_data"] as DataView;
35 }
36 set
37 {
38 if( Cache["_data"]==null)
39 Cache["_data"]=value;
40 }
41 }
42 Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
43 override protected void OnInit(EventArgs e)
44 {
45 //
46 // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
47 //
48 InitializeComponent();
49 base.OnInit(e);
50 }
51
52 /**//// <summary>
53 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
54 /// 此方法的内容。
55 /// </summary>
56 private void InitializeComponent()
57 {
58 this.Load += new System.EventHandler(this.Page_Load);
59 this.rpOrder.ItemCommand+=new RepeaterCommandEventHandler(rpOrder_ItemCommand);
60 this.rpOrder.ItemDataBound+=new RepeaterItemEventHandler(rpOrder_ItemDataBound);
61
62 }
63 #endregion
64
65 private SqlConnection Conn()
66 {
67 return new SqlConnection(CONNECTIONSTRING);
68 }
69
70 private void BindRepeater()
71 {
72 DataSet ds=new DataSet();
73 SqlDataAdapter da=new SqlDataAdapter("Select * From Employees",Conn());
74 da.Fill(ds);
75 GetData=ds.Tables[0].DefaultView;
76 rpOrder.DataSource=ds.Tables[0];
77 rpOrder.DataBind();
78 }
79
80 private void rpOrder_ItemCommand(object source, RepeaterCommandEventArgs e)
81 {
82 if(e.Item.ItemType==ListItemType.Header)
83 {
84 LinkButton lkbtnSort=(LinkButton)e.Item.FindControl(e.CommandName.Trim());
85 if(ViewState[e.CommandName.Trim()]==null)
86 {
87 ViewState[e.CommandName.Trim()]="ASC";
88 lkbtnSort.Text=lkbtnSort.Text+"▲";
89 }
90 else
91 {
92 if(ViewState[e.CommandName.Trim()].ToString().Trim()=="ASC")
93 {
94 ViewState[e.CommandName.Trim()]="DESC";
95 if(lkbtnSort.Text.IndexOf("▲")!=-1)
96 lkbtnSort.Text=lkbtnSort.Text.Replace("▲","▼");
97 else
98 lkbtnSort.Text=lkbtnSort.Text+"▼";
99 }
100 else
101 {
102 ViewState[e.CommandName.Trim()]="ASC";
103 if(lkbtnSort.Text.IndexOf("▼")!=-1)
104 lkbtnSort.Text=lkbtnSort.Text.Trim().Replace("▼","▲");
105 else
106 lkbtnSort.Text=lkbtnSort.Text+"▲";
107 }
108 }
109 ViewState["text"]=lkbtnSort.Text;
110 ViewState["id"]=e.CommandName.Trim();
111 DataView dv=GetData;
112 dv.Sort=e.CommandName.ToString().Trim()+" "+ViewState[e.CommandName.Trim()].ToString().Trim();
113 rpOrder.DataSource=dv;
114 rpOrder.DataBind();
115 }
116 }
117
118 private void rpOrder_ItemDataBound(object sender, RepeaterItemEventArgs e)
119 {
120 if(e.Item.ItemType==ListItemType.Header)
121 {
122 if(ViewState["id"]!=null)
123 {
124 LinkButton lkbtnSort=(LinkButton)e.Item.FindControl(ViewState["id"].ToString().Trim());
125 lkbtnSort.Text=ViewState["text"].ToString();
126 }
127 }
128 }
129 }
130}
131
Repeater 双向排序相关推荐
- Repeater点击表头双向排序
repeater实现排序功能(双击升序排列,再双击降序排列).原理很简单,在<TD>中加个Ondblclick,用它来触发一个LinkButton的服务器事件.LinkButton的服务器 ...
- DataGrid双向排序以及给HeaderText加图标
DataGrid双向排序以及给HeaderText加图标 DataGrid默认情况下只支持单向排序,而且默认是升序(ASC).能不能使之支持双向排序并且给HeaderText加图标呢? ...
- 2021年第十二届蓝桥杯 - 省赛 - C/C++大学B组 - I.双向排序
2021年第十二届蓝桥杯 - 省赛 - C/C++大学B组 - I.双向排序 Ideas 题目中给出了两种操作: 当 pi = 0 时,表示将 a1, a2, · · · , aqi 降序排列: 当 ...
- Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序(三)
第七步: 在自定义分页的Repeater 里添加排序功能 现在已经完成了自定义分页,我们再来添加排序功能.ProductsBLL类的GetProductsPagedAndSorted方法和GetPro ...
- 第十二届蓝桥杯A组省赛试题 I: 双向排序(Java)
试题 I: 双向排序 本题总分:25 分 [问题描述] 给定序列 (a1, a2, · · · , an) = (1, 2, · · · , n),即 ai = i. 小蓝将对这个序列进行 m 次操作 ...
- Repeater内部排序
Repeater内部排序,调用 <%# this.repUser.Items.Count + 1%> <asp:Repeater ID="repUser" run ...
- Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序
Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序(一) 原文 | 下载本教程中的编码例子 | 下载本教程的PDF版 (以后比较长的部 ...
- 2021 第十二届 蓝桥杯 双向排序 题解 栈+文艺平衡树
2021 第十二届蓝桥杯 双向排序 题解 栈+文艺平衡树 题目描述 思路 实现方法 代码 只用栈 只用栈的代码 题目描述 原题链接:https://www.lanqiao.cn/problems/14 ...
- datagrid的正反双向排序
在asp.net中利用datagrid控件按列进行排序很是方便.可是我们只能单项排序!如果我们需要正反排序那么就需要加入一些代码控制一下. 首先我们需要将datagird控件的属性设置为 AllowS ...
最新文章
- 2021年大数据Spark(十四):Spark Core的RDD操作
- centos7 搭建本地git_本地服务调用K8S环境中的SpringCloud微服务实战
- Python创建daemon
- protobuf-c使用说明
- 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第3章-具有扩散作用的多智能体系统领导-跟随一致性
- C#中的equals()和==
- Bokeh——交互式可视化库
- 论文浅尝 | 多内容实体和关系联合抽取的对抗训练
- 2020年中国直播电商行业研究报告
- 每次Title显示不同的名言
- 【WCF】服务并发中的“可重入模式”
- linux 测试本地端口是否打开,有效地测试Linux上的端口是否打开?
- Window上修改了mysql的配置文件my.ini后重启服务报错:本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止
- linux基础命令(总结)
- Python循环遍历(cycle)
- c 函数 字符串 find_如何在C ++中使用字符串find()
- jasperReport - 多Table的PDF中文导出
- 1414 冰雕(思维+暴力)
- 互联网公司愚人节策划大盘点,在恶搞界谁是老大?
- 刷脸支付重磅来袭是业界的口碑代表
热门文章
- gps天线拆解图片_飞宇稳定器拆解:握杆的手,不怕颤抖
- 零基础学python数据分析_Python学习指南:使用Python学习数据分析
- iphone9发布_【60秒半导体新闻】消息称国外疫情爆发让苹果取消发布会 iPhone 9跳票/华为P40全家福:7种配色、陶瓷尊享版配豪华五摄...
- 新娘JAVA_Java之趣味编程结婚问题
- sapi cli php mac,make: *** [sapi/cli/php] Error 1 解决办法
- 工作分流是什么意思_【嘉陵特装要闻】重庆嘉陵召开持续推进职工分流安置工作布置会...
- 列表视图案例2——显示用户列表
- 基于注解使用MyBatis
- vscodepython技巧_VScode Python no module的解决方法
- java spark on hive_hive-on-spark 安装 以及 scala 实例