1、AspNetPager分页,实现每一列都可排序:

          (1)、须要将默认排序字段放在HTML页面中。
          (2)、排序字段放置为td节点的属性。

如图:



实现的效果图如:



HTML代码:

<div class="row">
<div class="col-lg-12 col-sm-12 col-xs-12 col-xxs-12">
<table class="table table-striped table-hover table-bordered bootstrap-datatable " id="DataTables_Table_0" >
<thead>
<tr><input type="hidden" id="defaultOrder" value="FirstDaijaDate" runat="server" /><!--默认排序-->
<td class="sorting_asc" onclick="OrderBy(this)" sortf="FirstDaijaDate" text="首次代驾">首次代驾<input type="hidden" id="hidden_Orderby" value="FirstDaijaDate*sorting_desc" runat="server" /></td>
<td class="sorting" onclick="OrderBy(this)" sortf="CustomerName" text="姓名">姓名</td>
<td class="sorting" onclick="OrderBy(this)" sortf="CustomerPhone" text="联系方式">联系方式</td>
<td class="sorting" onclick="OrderBy(this)" sortf="Attribution" text="归属地">归属地</td>
<td class="sorting" onclick="OrderBy(this)" sortf="DaiJiaCount" text="代驾次数">代驾次数</td>
<td class="sorting" onclick="OrderBy(this)" sortf="LastRechargeDate" text="最后充值">最后充值</td>
<td class="sorting" onclick="OrderBy(this)" sortf="LastRechargeMoney" text="充值金额">充值金额</td>
<td class="sorting" onclick="OrderBy(this)" sortf="TrackingState" text="跟踪状态">跟踪状态</td>
<td class="sorting" onclick="OrderBy(this)" sortf="IsVisit" text="是否回訪">是否回訪</td>
<td class="sorting" onclick="OrderBy(this)" sortf="IsVIP" text="是否VIP">是否VIP</td>
<td class="sorting" onclick="OrderBy(this)" sortf="NextContactDate" text="再联系时间">再联系时间</td>
<td class="sorting" onclick="OrderBy(this)" sortf="LastTrackingCustomerService" text="客服">客服</td>
<td >操作</td>
</tr>
</thead>
<tbody>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td ><%# Eval("FirstDaijaDate") %></td>
<td ><%# Eval("CustomerName") %></td>
<td ><%# Eval("CustomerPhone") %></td>
<td ><%# Eval("Attribution") %></td>
<td ><%# Eval("DaiJiaCount") %></td>
<td ><%# Eval("LastRechargeDate").ToString()!="0001/1/1 0:00:00"?Eval("LastRechargeDate"):"" %></td>
<td ><%# Eval("LastRechargeMoney") %></td>
<td ><%# GetTrackingState(Eval("TrackingState").ToString().Trim())%></td>
<td ><%# GetIsVisit(Eval("IsVisit")==null?"":Eval("IsVisit").ToString())%></td>
<td ><%# Eval("IsVIP").ToString()=="true"?"是":"否"%></td>
<td ><%# Eval("NextContactDate").ToString()!="0001/1/1 0:00:00"?Eval("NextContactDate"):"" %></td>
<td ><%# Eval("LastTrackingCustomerService") %></td>
<td>
<div class="porpre">
<div class="input-group-btn" style="width: auto">
<a href="CustomerInformationDetails.aspx?Id=<%#Eval("Id") %>&phone=<%#Eval("CustomerPhone") %>&RecommendationNumber=<%#Eval("RecommendationNumber") %>&tabPage=CustomerDetail" class="btn btn-primary dropdown-toggle">    查  看    </a>
<a href="javascript:void(0);" onclick="btngroupClick(this,event)" class="btn btn-primary dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>
</div>
<div style="display: none;" class="pHide" id="pHide">
<ul>
<li>
<a href="CustomerInformationDetails.aspx?Id=<%#Eval("Id") %>&phone=<%#Eval("CustomerPhone") %>&RecommendationNumber=<%#Eval("RecommendationNumber") %>&tabPage=ViewAccount" class="btn btn-success ">查看子号</a>
</li>
<li>
<a href="CustomerInformationDetails.aspx?Id=<%#Eval("Id") %>&phone=<%#Eval("CustomerPhone") %>&RecommendationNumber=<%#Eval("RecommendationNumber") %>&tabPage=Records" class="btn btn-info ">推荐记录</a>
</li>
<li>
<a href="CustomerInformationDetails.aspx?Id=<%#Eval("Id") %>&phone=<%#Eval("CustomerPhone") %>&RecommendationNumber=<%#Eval("RecommendationNumber") %>&tabPage=FailureOrder" class="btn btn-warning ">未报订单</a>
</li>
<li>
<a href="CustomerInformationDetails.aspx?Id=<%#Eval("Id") %>&phone=<%#Eval("CustomerPhone") %>&RecommendationNumber=<%#Eval("RecommendationNumber") %>&tabPage=DaijiaRecords" class="btn btn-danger ">代驾记录</a>
</li>
<li>
<a href="CustomerInformationDetails.aspx?Id=<%#Eval("Id") %>&phone=<%#Eval("CustomerPhone") %>&RecommendationNumber=<%#Eval("RecommendationNumber") %>&tabPage=RechargeRecord" class="btn btn-primary ">充值记录</a>
</li>
<li class="ma">
<a href="CustomerInformationDetails.aspx?Id=<%#Eval("Id") %>&phone=<%#Eval("CustomerPhone") %>&RecommendationNumber=<%#Eval("RecommendationNumber") %>&tabPage=BillingRecord" class="btn btn-warning ">开票记录</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</table>
</div>
</div>
<div class="row" style="margin-top: 15px;">
<div class="col-lg-12 col-sm-12 col-xs-12 col-xxs-12">
<div style='font-size:14px;'>共<label style="color:#20A8D8; font-size:14px;""><%=this.AspNetPager1.RecordCount %></label>条记录</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12 col-xs-12 col-xxs-12">
<webdiyer:AspNetPager ID="AspNetPager1" CssClass="paginator" CurrentPageButtonClass="cpb"
OnPageChanged="AspNetPager1_PageChanged" runat="server" FirstPageText="首页" PageSize="5"
LastPageText="尾页" NextPageText="← 下一页" PrevPageText="← 上一页" AlwaysShow="true" ShowPageIndexBox="Never" NumericButtonCount="10"
CurrentPageButtonPosition="End"
ShowFirstLast="false">
</webdiyer:AspNetPager>
</div>
</div>

JS代码:

//获取地址參数
function request(paras) {
var url = location.href;
var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
var paraObj = {}
for (i = 0; j = paraString[i]; i++) {
paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);
}
var returnValue = paraObj[paras.toLowerCase()];
if (typeof (returnValue) == "undefined") {
return "0";
} else {
return returnValue;
}
}
window.onload = function () {
var OrderBySort = request('OrderBySort');//获取地址栏排序 var filed = '';//排序字段
var orderClass = '';//排序class
if (OrderBySort.indexOf('*') != -1) {
filed = OrderBySort.substring(0, OrderBySort.indexOf('*'));
orderClass = OrderBySort.substring(OrderBySort.indexOf('*') + 1);
}
//获取文字
var text = unescape(request('text'));
var value = filed + "*" + orderClass;
if (OrderBySort != '0') {//当地址栏有參数时
$('#DataTables_Table_0 thead tr td').each(function (index, element) {
var defaultorder = $('#MainContent_defaultOrder').val();
if (OrderBySort.indexOf(defaultorder) == -1) {//假设不是以发表时间排序的,设置其样式为不排序
if ($(this).attr("sortf") == defaultorder) {
$(this).attr("class", "sorting");
}
if ($(this).attr("sortf") == filed) {
$(this).after("<td class='" + orderClass + "' onclick='OrderBy(this)' sortf='" + filed + "' text='" + text + "'>" + text + "<input name='ctl00$MainContent$hidden_Orderby' type='hidden' id='MainContent_hidden_Orderby' value='" + value + "'></td>");
$(this).remove();
}
} else {//以时间排序时
if ($(this).attr("sortf") == filed) {
$(this).after("<td class='" + orderClass + "' onclick='OrderBy(this)' sortf='" + filed + "' text='" + text + "'>" + text + "<input name='ctl00$MainContent$hidden_Orderby' type='hidden' id='MainContent_hidden_Orderby' value='" + value + "'></td>");
$(this).remove();
}
}
});
}
var top = request('scrollTop');
$("body,html").animate({ scrollTop: top });//网页被卷去的高
};
function OrderBy(obj) {
//获取文字
var text = $(obj).attr("text");
//获取排序class
var orderClass = $(obj).attr("class");
//获取排序字段
var filed = $(obj).attr("sortf");
if (orderClass == 'sorting') {
orderClass = 'sorting_asc';
}
if (orderClass == 'sorting_asc') {
orderClass = 'sorting_desc';
}
else if (orderClass == 'sorting_desc') {
orderClass = 'sorting_asc';
}
var value = filed + "*" + orderClass;
$(obj).after("<td class='" + orderClass + "' onclick='OrderBy(this)' sortf='" + filed + "'>" + text + "<input name='ctl00$MainContent$hidden_Orderby' type='hidden' id='MainContent_hidden_Orderby' value='" + value + "'></td>");
$(obj).remove();
var top = document.documentElement.scrollTop;//IE
if (top == 0) {
top = document.body.scrollTop;//非IE 网页被卷去的高
}
var url = location.href;
url = location.href.substring(0, url.indexOf("?"));
window.location.href = url + '?OrderBySort=' + filed + "*" + orderClass + '&scrollTop=' + top + '&Text=' + escape(text) + '';//字段*排序 和 当前
}

C#后台代码:

string OrderBySort = "FirstDaijaDate*sorting_desc";
if (Request.QueryString["OrderBySort"] != null && Request.QueryString["OrderBySort"] != "")
{
OrderBySort = Request.QueryString["OrderBySort"];
}
this.hidden_Orderby.Value = OrderBySort.Trim();
BindProList(OrderBySort);//数据绑定

【Bootstrap3.0建站笔记三】AspNetPager分页,每一列都可排序的更多相关文章

  1. 【Bootstrap3.0建站笔记一】表单元素排版

    1.文字和输入框前后排列: 代码: <div class="row"> <div class="col-lg-12"> <div ...

  2. 【Bootstrap3.0建站笔记二】button可下拉弹出层

    1.button可下拉弹出层: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hpbmFwbGFu/font/5a6L5L2T/fontsize/400 ...

  3. 建站笔记1:centos6.5下安装mysql

    近期买了个域名,想要玩玩自己建站点:接下来遇到的问题都会一次记录下来.以备自己以后复习查看: 首先建站方案选择: wordPress +centos6.5 +mysql; server买的:搬瓦工最低 ...

  4. 玩转Django2.0---Django笔记建站基础三(编写URL规则)

    第三章 编写URL规则 URL(Uniform Resource Locator,统一资源定位符)是对可以从互联网上得到的资源位置和访问方法简洁的表示,是互联网上标准资源的地址. 在App里由于Dja ...

  5. 【Python实战】Django建站笔记

    前一段时间,用Django搭建一个报表分析的网站:借此正好整理一下笔记. 1. 安装 python有包管理工具pip,直接cd Python27/Scripts,输入 pip install djan ...

  6. Github建站笔记

    下载Git 搜索"Git",在官网中根据系统版本下载,并双击打开,按默认已勾选组件点下一步; 勾选在Windows命令行窗口中使用Git: 使用推荐的OpenSSL库用于HTTPS ...

  7. DigitalOcean 建站笔记

    由于在默认的情况下digitalocean的VPS没有设置swap分区,用df -h命令查看的话,整个VPS上只有一个20G的分区.用free命令查看的话,swap分区的大小是0,增加swap分区的命 ...

  8. Node.js建站笔记-使用react和react-router取代Backbone

    斟酌之后,决定在<嗨猫>项目中引入react,整体项目偏重spa模式,舍弃部分server端的模板渲染,将一部分渲染工作交给前端react实现. react拥有丰富的组件,虽然不如Back ...

  9. Nodejs建站笔记-注册登录流程的简单实现

    1. 使用Backbone实现前端hash路由 登录注册页面如下: 初步设想将注册和登录作为两个不同的url实现,但登录和注册功能的差距只有form表单部分,用两个url实现显然开销过大,所以最终方案 ...

随机推荐

  1. MyBatis学习 之 三、动态SQL语句

    目录(?)[-] 三动态SQL语句 selectKey 标签 if标签 if where 的条件判断 if set 的更新语句 if trim代替whereset标签 trim代替set choose ...

  2. Domain Name System (DNS)

    1.DNS和WINS的作用 DNS:(Domain Name Server,域名服务)用于实现域名和IP地址的相互转换. WINS:(Windows Internet Name Service) 用来 ...

  3. IO负载高的来源定位

    前言: 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的util),但是无法快速的定位到IO负载的来源进程和来源文件导致无法进行相应的策略来解决问题. 这个现象在MySQ ...

  4. Launcher2编译

    Android的源码包,压缩文件大概有3个G左右,要使用其中自带的一些源码需要很多技巧,否则会提示找不到一些库,大量的报错让人心神不定,不知所从. 我拿桌面代码举个例子吧. 桌面代码在源码包的pack ...

  5. Dropping water balloons

    题意: 给你k个水球n层楼(n很大) 现在做实验在楼上向下丢水球,若水球没破可以重新丢,求把所有水球弄破的最小试验次数. 分析: 开始完全没思路啊.从正面求没法做不会表示状态,做实验是只能从第一层,一 ...

  6. codeforces 700C Break Up 暴力枚举边+边双缩点(有重边)

    题意:n个点,m条无向边,每个边有权值,给你 s 和 t,问你至多删除两条边,让s,t不连通,问方案的权值和最小为多少,并且输出删的边 分析:n<=1000,m是30000  s,t有4种情况( ...

  7. bjfu1164 Parity Game

    简单规律题.首先想到的是,若01串中1有n个,则可以通过操作,使串中1的个数变为n-1.n-2……1.0个:第2个想到的是,如果n为奇数,可以通过操作,使串中1的个数最多变为n+1,而若n为偶数,则无 ...

  8. IOS-day02_OC中类的声明

    在上一个笔记中类的使用中,在编译链接的时候会有警告,原因就是我们没有对类进行声明 类的声明如下:使用关键字@interface #import <Foundation/Foundation.h& ...

  9. CSS计算样式的获取

    一般来说我们获取CSS的样式的时候会优先采用Elment.style.cssName 这种方法,这种方法类似于对象设置get,set属性获取,例如Elment.style.cssName是获取,Elm ...

  10. jQuery/CSS3大屏下拉菜单 自定义子菜单内容

    这是一款样式很酷的jQuery/CSS3下拉菜单,首先这款CSS3菜单是宽屏的,主要是下拉菜单非常大气,更重要的是,下拉菜单的内容可以自己定义,也就是说,下拉菜单中可以定义菜单.图片等HTML元素,是 ...