修改后样式:

第一步:实现功能.

  更改源码部分ligerui.all.js文件

读源代码,发现ligerui底部工具条是这样实现的(ps:注释部分为源码)

_render: function () {
var g = this, p = this.options;
g.grid = $(g.element);
g.grid.addClass("l-panel");
var gridhtmlarr = [];
gridhtmlarr.push(" <div class='l-panel-header'><span class='l-panel-header-text'></span></div>");
gridhtmlarr.push(" <div class='l-grid-loading'></div>");
gridhtmlarr.push(" <div class='l-panel-topbar' style='display:none'><div class='l-panel-topbarinner'></div></div><div class='l-clear'></div>");
gridhtmlarr.push(" <div class='l-panel-bwarp'>");
gridhtmlarr.push(" <div class='l-panel-body'>");
gridhtmlarr.push(" <div class='l-grid'>");
gridhtmlarr.push(" <div class='l-grid-dragging-line'></div>");
gridhtmlarr.push(" <div class='l-grid-popup'><table cellpadding='0' cellspacing='0'><tbody></tbody></table></div>"); gridhtmlarr.push(" <div class='l-grid1'>");
gridhtmlarr.push(" <div class='l-grid-header l-grid-header1'>");
gridhtmlarr.push(" <div class='l-grid-header-inner'><table class='l-grid-header-table' cellpadding='0' cellspacing='0'><tbody></tbody></table></div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" <div class='l-grid-body l-grid-body1'>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" </div>"); gridhtmlarr.push(" <div class='l-grid2'>");
gridhtmlarr.push(" <div class='l-grid-header l-grid-header2'>");
gridhtmlarr.push(" <div class='l-grid-header-inner'><table class='l-grid-header-table' cellpadding='0' cellspacing='0'><tbody></tbody></table></div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" <div class='l-grid-body l-grid-body2 l-scroll'>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" </div>"); gridhtmlarr.push(" </div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" </div>");
/**
* 根据样式需求更改分页工具栏样式
* 修改生成的分页工具条
*/
//注释掉ligerUI原来的代码
//gridhtmlarr.push(" <div class='l-panel-bar'>");
//gridhtmlarr.push(" <div class='l-panel-bbar-inner'>");
//gridhtmlarr.push(" <div class='l-bar-group l-bar-message'><span class='l-bar-text'></span></div>");
//gridhtmlarr.push(" <div class='l-bar-group l-bar-selectpagesize'></div>");
//gridhtmlarr.push(" <div class='l-bar-separator'></div>");
//gridhtmlarr.push(" <div class='l-bar-group'>");
//gridhtmlarr.push(" <div class='l-bar-button l-bar-btnfirst'><span></span></div>");
//gridhtmlarr.push(" <div class='l-bar-button l-bar-btnprev'><span></span></div>");
//gridhtmlarr.push(" </div>");
//gridhtmlarr.push(" <div class='l-bar-separator'></div>");
//gridhtmlarr.push(" <div class='l-bar-group'><span class='pcontrol'> <input type='text' size='4' value='1' style='width:20px' maxlength='3' /> / <span></span></span></div>");
//gridhtmlarr.push(" <div class='l-bar-separator'></div>");
//gridhtmlarr.push(" <div class='l-bar-group'>");
//gridhtmlarr.push(" <div class='l-bar-button l-bar-btnnext'><span></span></div>");
//gridhtmlarr.push(" <div class='l-bar-button l-bar-btnlast'><span></span></div>");
//gridhtmlarr.push(" </div>");
//gridhtmlarr.push(" <div class='l-bar-separator'></div>");
//gridhtmlarr.push(" <div class='l-bar-group'>");
//gridhtmlarr.push(" <div class='l-bar-button l-bar-btnload'><span></span></div>");
//gridhtmlarr.push(" </div>");
//gridhtmlarr.push(" <div class='l-bar-separator'></div>");
//gridhtmlarr.push(" <div class='l-clear'></div>");
//gridhtmlarr.push(" </div>");
//gridhtmlarr.push(" </div>");

这样一来实现就很简单了只要重写注释部分源码并增加生成控件和执行点击事件的逻辑即可

重写后的部分代码1:

 gridhtmlarr.push("         <div class='l-panel-bar'>");
gridhtmlarr.push(" <div class='l-panel-bbar-inner'>");
gridhtmlarr.push(" <div class='l-bar-group'><span class='pcontrol'>当前第<span id='currentPage'></span> / <span id='allPage'></span>页</span></div>");
gridhtmlarr.push(" <div class='l-bar-group'>");
gridhtmlarr.push(" <div class='pageControl'>");
gridhtmlarr.push(" <div class='l-bar-group'>");
gridhtmlarr.push(" <div class='l-bar-btnprev'><span>上一页</span></div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" <div class='l-bar-group'>");
gridhtmlarr.push(" <div class='pagebtns'></div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" <div class='l-bar-group'>");
gridhtmlarr.push(" <div class='l-bar-btnnext'><span>下一页</span></div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" <div class='l-bar-group'>");
gridhtmlarr.push(" <span class='gopagebox'><span class='gopageboxspan'>到</span><input id='skippage' type='text' size='4'/><span class='gopageboxspan'>页</span></span>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" <div class='l-bar-group'>");
gridhtmlarr.push(" <div class='pskip'><input id='ligerbtn' type='button' size='4' value='确定'/></div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" <div class='l-clear'></div>");
gridhtmlarr.push(" </div>");
gridhtmlarr.push(" </div>");

第二步:添加方法:(这一部分代码实现了具体的点击按钮逻辑)

 /**
* 根据样式需求更改分页工具栏样式
* 增加_generPageHtml方法
* _generPageHtml方法重新生成分页工具条样式并注册点击事件
*/
_generPageHtml: function () {
var g = this, p = this.options;
if (g.loading) return true;
if (p.dataAction != "local" && g.isDataChanged && !confirm(p.isContinueByDataChanged))
return false;
//分页处理准备
var pno = parseInt(p.newPage);
p.pageCount = parseInt($("#allPage", g.toolbar).html());
var length = p.pageCount;
$('.pagebtns').empty();
//分页处理
var dot = '<span class="spanDot">...</span>';
if (length <= 8) {
for (var i = 1; i <= length; i++) {
if (pno == i) {
$('.pagebtns').append('<a class="aAll curr" id="a' + i + '">' + i + '</a>');
}else {
$('.pagebtns').append('<a class="aAll" id="a' + i + '">' + i + '</a>');
}
}
} else {
if (pno <= 5) {
for (var i = 1; i <= 7; i++) {
if (pno == i) {
$('.pagebtns').append('<a class="aAll curr" id="a' + i + '">' + i + '</a>');
}
else {
$('.pagebtns').append('<a class="aAll" id="a' + i + '">' + i + '</a>');
}
}
$('.pagebtns').append(dot);
} else {
$('.pagebtns').append('<a class="aAll" id="a1">1</a>');
$('.pagebtns').append('<a class="aAll" id="a2">2</a>');
$('.pagebtns').append(dot);
var begin = pno - 2;
var end = pno + 2;
if (end > length) {
end = length;
begin = end - 4;
if (pno - begin < 2) {
begin = begin - 1;
}
} else if (end + 1 == length) {
end = length;
}
for (var i = begin; i <= end; i++) {
if (pno == i) {
$('.pagebtns').append('<a class="aAll curr" id="a' + i + '">' + i + '</a>');
} else {
$('.pagebtns').append('<a class="aAll" id="a' + i + '">' + i + '</a>');
}
}
if (end != length) {
$('.pagebtns').append(dot);
$('.pagebtns').append('<a class="aAll" id="a' + length + '">' + length + '</a>');
}
}
}
//注册点击事件
$('.aAll').click(function (e) {
var gotoPage = e.currentTarget.innerText;
if (gotoPage) {
g.changePage('a',gotoPage);
}
});
},

其次是根据更改代码一来改动其他方法中的选择器名称,太杂乱,就不一一展示.

接下来是何时调用添加的方法_generPageHtml(创建分页工具条),通过源码阅读,与调试demo,让方法在类库中自动调用是最好的方式,不用在类库的调用中增加额外的工作量.

在调用类库中的_buildPager方法(创建分页)时调用该方法.

注意点:

usePager属性(是否使用分页)的判断

使用本地数据需要调用 Grid的reRender方法

 源码及source:链接:http://pan.baidu.com/s/1pKH0EBT 密码:4bvx

但根据调研和使用,发现此种分页方式适合页数固定的项目(类似于购物网站),但不适用于后台管理系统,因为后台管理系统数据量可能很大,导致翻页和动态跳动,样式不佳

更改ligerui源码实现分页样式修改的更多相关文章

  1. 帝国cms 列表页分页样式修改美化【2】

    上一篇(帝国cms 列表页分页样式修改美化[1])中我们已经对分页说了一个大概,下面我们就自己动手弄一个分页把: 第一步:进入帝国cms后台,点击系统设置->系统参数设置->信息设置:里面 ...

  2. springMVC源码分析--动态样式ThemeResolver(二)

    在上一篇博客springMVC源码分析--动态样式ThemeResolver(一)中我们介绍了多样式ThemeResolver的使用方法,接下来我们对源码进行简单的分析一下. ThemeResolve ...

  3. 通过更改scrapy源码进行spider分发实现一个综合爬虫

    最近我正写一个项目,项目的需求如下一,要爬取大约100种几百个网页的类容,并且这些网页的爬取频率不一样,有些一天爬取一次,有些一周爬取一次,二,网页爬取内容有变化,也就是说要爬取的内容会根据需求进行改 ...

  4. thinkphp5.1中使用Bootstrap4分页样式修改

    1.找到thinkphp下的Boorstrap的源码 \thinkphp\library\think\paginator\driver\Bootstrap.php 2丶直接修改源码 <?php ...

  5. highchart导出功能的介绍更改exporting源码

    本案利用highchar作为前端,展示数据的图形效果,结合spring+springmvc来完成数据图片的导出. jsp引入文件: <script src="${pageContext ...

  6. 帝国cms 列表页分页样式修改美化【1】

    [1]自己修改帝国cms默认的分页样式(css),这样做的好处是你不用去改动帝国的核心文件,方便以后升级. [2]自己动手去修改帝国的分页(php+css),帝国的分页在e>class>下 ...

  7. 帝国cms分页样式修改文件-注意事项

    帝国cms分页样式主要有:内容页分页样式.列表页分页样式以及默认搜索模板使用的搜索样式等几种. 要改这些样式其实也很简单,在网站目录中找到相应的.css文件修改empages属性就行了,但是这样比较麻 ...

  8. 记一次修改框架源码的经历,修改redux使得redux 可以一次处理多个action,并且只发出一次订阅消息

    redux是一个数据状态管理的js框架,redux把行为抽象成一个对象,把状态抽象成一个很大的数据结构,每次用户或者其他什么方式需要改变页面都可以理解成对数据状态的改变,根据出发这次改变的不同从而有各 ...

  9. 帝国cms 7.5版列表页分页样式修改笔记

    最近在用帝国改版我的个人博客站点,这个也是我第一次尝试用帝国来做博客,之前用过wordpress,每用一个新的程序,都会有些新的收获,也会学到一些新的东西. 在改用帝国之前,我也在网上大概了解了一下, ...

随机推荐

  1. ranlib

    1 ranlib的缩写 random access library 2 ranlib的作用 为静态库的符号建立索引,可以加速链接,因此称用ranlib处理过的library为random access ...

  2. 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述

    共识算法 区块链中最重要的便是共识算法,比特币使用的是POS(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算理便的不怎么重要了,而今PO ...

  3. C语言预处理命令总结大全 :宏定义

    C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境.本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性.ANS ...

  4. bzoj1878 [SDOI2009]HH的项链——树状数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 离线树状数组,巧妙的思路呢: 给每种项链记录一个最后出现的位置lst,根据项链最后出现 ...

  5. 《10 minutes to pandas》(转)

    原文出处:http://pandas.pydata.org/pandas-docs/stable/10min.html 10 Minutes to pandas This is a short int ...

  6. PCB CAM自动化后台配置说明

    CAM自动化项目经历9个月时间里,在我们IT团队与工程部深入合作下,依据PCB各种场景定制特定功能,且这几个月里在不断的改进与迭代脚本功能,在此期间攻破了一个又一个难题,最终项目第一阶段已顺立上线运行 ...

  7. bzoj 2326: [HNOI2011]数学作业【dp+矩阵快速幂】

    矩阵乘法一般不满足交换律!!所以快速幂里需要注意乘的顺序!! 其实不难,设f[i]为i的答案,那么f[i]=(f[i-1]w[i]+i)%mod,w[i]是1e(i的位数),这个很容易写成矩阵的形式, ...

  8. bzoj 1600: [Usaco2008 Oct]建造栅栏【dp】

    要求三边和大于第四边,所以任意一条边的长度都是小于n/2 设f[i][j]为前i条长为j,转移的时候用n/2限制 #include<iostream> #include<cstdio ...

  9. bzoj 3961: [WF2011]Chips Challenge【最小费用最大流】

    参考:https://blog.csdn.net/Quack_quack/article/details/50554032 神建图系列 首先把问题转为全填上,最少扣下来几个能符合条件 先考虑第2个条件 ...

  10. P4357 [CQOI2016]K远点对(KDTree)

    传送门 又一次产生了KDTree本质就是爆搜的感觉-- 大概就类似于p4169,只不过是从最近点对变成了第\(k\)远点对 我们开一个小根堆,里面放\(k\)个元素,起初全为\(0\),然后每一次都把 ...