修改后样式:

第一步:实现功能.

  更改源码部分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. ABAP 读取服务器CSV文件到内表

    DATA: BEGIN OF gs_data , cola TYPE string, colb TYPE string, ... END OF gs_data, gt_data LIKE TABLE ...

  2. YTU 1008: 童年生活二三事

    1008: 童年生活二三事 时间限制: 1000 Sec  内存限制: 64 MB 提交: 842  解决: 592 题目描述 Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去. ...

  3. sphinx索引部分源码续——过程:连接到CSphSource对应的sql数据源,通过fetch row取其中一行,然后解析出field,分词,获得wordhit,最后再加入到CSphSource的Hits里

    后面就是初始化一些存储结构,其中重点说下缓存出来的几个临时文件分别的作用.结尾时tmp0的存储的是被上锁的Index,有些Index正在被查询使用 故上锁.tmp1,即对应将来生成的spp文件,存储词 ...

  4. Codeforces 633H. Fibonacci-ish II

    题目大意: 一个数列 q次询问 每次询问l r 将数列中l-r的位置排序去重后的数列成为b 输出 sigma b i * F i (其中F i为斐波那契数列中的第i项) 思路: 由于要去重 考虑权值线 ...

  5. BZOJ_3105_[cqoi2013]新Nim游戏_线性基+博弈论

    BZOJ_3105_[cqoi2013]新Nim游戏_线性基+博弈论 Description 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作 ...

  6. codeforces round 417 div2 补题 CF 812 A-E

    A Sagheer and Crossroads 水题略过(然而被Hack了 以后要更加谨慎) #include<bits/stdc++.h> using namespace std; i ...

  7. hdu5396(区间DP)

    题目意思: 给定一个表达式,运算符没有优先级,求不同顺序计算,所有可能的得到的结果之和. 由于运算符没有优先级,所以有多种顺序去计算,设d[i][j]表示[i,j]区间表达式通过不同顺序计算,所以可能 ...

  8. 小程序-demo:小程序示例-page/component2

    ylbtech-小程序-demo:小程序示例-page/component2 以下将展示小程序官方组件能力,组件样式仅供参考,开发者可根据自身需求自定义组件样式,具体属性参数详见小程序开发文档. 1. ...

  9. C# 混淆 反编译

    .net破解一(反编译,反混淆-剥壳) http://www.cnblogs.com/jio92/p/de4dot.html C#学习系列-String与string的区别 http://www.cn ...

  10. Linux 系统管理命令 - iotop - 动态显示磁盘 I/O 统计信息

    命令详解 重要星级: ★★★★☆ 功能说明: iotop 命令是一款实时监控磁盘 I/O 的工具, 但必须以 root 用户的身份运行.使用 iotop 命令可以很方便的查看每个进程使用磁盘 I/O ...