SNF快速开发平台MVC-瀑布式分页组件

1.   瀑布式分页

目前已经比较流行了,以往的这种点击分页已经不能满足广大网民的需求了。像百度图片等等,网站都有滚动滚轮直接分页的功能,这样体验也确实好了不少,所以我们也决定在我们的框架内进行集成此功能。一种针对于我们的表格控件进行瀑布式分页,另一种是针对于网页自定义样式瀑布式分页。

1.1.      效果展示

1.1.1.    表格瀑布式分页

图 3.1

1.1.2.    任意文本的瀑布式分页

图 3.2

1.2.      添加引用

<script src="~/Content/js/core/common.scroll.js"></script>

1.3.      表格瀑布式分页调用说明

1.3.1.    定义每次加载多少页

添加如下代码,eachTimeShow.rows改变时,会影响每次加载多少页

//定义每页几条,从第几页开始查询,固定格式且一定叫这个名字 this.eachTimeShow

this.eachTimeShow = { page: 1, rows: 20 };//***rows的数值一定要在snf.scrollDatagrid的pageList中存在

this.queryForm.page = ko.observable(self.eachTimeShow.page);

this.queryForm.rows = ko.observable(self.eachTimeShow.rows);

此代码写在viewModel的里边即可

1.3.2.    定义自由排序组件

在datagrid对象的onLoadSuccess事件中添加如下代码:

onLoadSuccess: function (d) {

//加载datagrid的瀑布式分页,注意位置,一定在onLoadSuccess事件中

/*

参数:

{

total: d.total, //需要加载的数据总条数

grid: self.grid, //当前瀑布式分页的datagrid在viewModel中绑定的对象

gridId: "grid",//绑定的datagrid的id

pageList: [10, 20, 30, 40, 50],//每次加载多少条的可选下拉

eachTimeShow: self.eachTimeShow//每次加载的数据条数 与 初始加载第几页的对象

}

*/

snf.scrollDatagrid({

total: d.total, //需要加载的数据总条数

grid: self.grid, //当前瀑布式分页的datagrid在viewModel中绑定的对象

gridId: "grid",//绑定的datagrid的id

pageList: [10, 20, 30, 40, 50],//每次加载多少条的可选下拉 默认[10, 20, 30, 40, 50]

eachTimeShow: self.eachTimeShow//每次加载的数据条数 与 初始加载第几页的对象

});

}

1.3.3.    重写表格的查询事件

//查询

this.searchClick = function () {

var param = ko.toJS(self.queryForm);

self.grid.queryParams($.extend(param, self.eachTimeShow));

};

可对表格的瀑布式分页进行条件查询

1.3.4.    demo样例

程序路径:

/DEMO/DemoSingleTableScroll/ DemoSingleTableScroll

可在程序中按照此路径增加菜单查看

1.4.      任意文本的瀑布式分页调用说明

1.4.1.    定义需要瀑布式分页的div对象

在需要瀑布式分页的div标签中添加属性scroll-bind

如图

图 3.3

1.4.2.    加载 瀑布式分页 内容

每个包含scroll-bind标签的div都需要定义一个如下对象,最后调用snf.scrollDivLoad(self)即可

formatter事件:返回值表示格式化后,每一格的内容。包含两个参数,row:当前行数据,row数据中包含rowIndex为当前索引;total:总行数

onAfterFormatter事件:formatter每次加载完成后触发,可用于绑定事件、自定义缩放等功能,包含一个参数row

onLoadSuccess事件:全部加载完成后触发,可包含两个参数row,total

//对应div的scroll-bind标签,注意一定要是div

//参数说明

//{

//w:左右边距 默认0

//h:上下边距 默认0

//rows:每次加载多少条数据,默认20

///**/url:数据查询地址,必填

//queryParams:绑定查询条件 默认ko.observable(self.queryForm)

//formatter:每行数据的格式化方式,增加一项rowIndex表示当前的行号

//}

this.DemoSingleTable = {

w: 4,

h: 100,

rows: 5,//每次加载多少行

pageList:[5, 10, 20, 30, 50],//每次加载多少条,可选择

url: "/api/DEMO/DemoSingleTableScroll/GetDemoSingleTableScrollBar",//数据加载地址

queryParams: ko.observable(self.queryForm),//查询条件

formatter :function (row){//每行数据格式化方法

var str = "<div style=‘width:100%;height:50px;margin-left:200px‘>";

str += "<span style=‘position:relative;margin: 0 auto;top: -50%;‘>序号:" + (row.rowIndex + 1) + " 名称:"+row.Name+",编号条码:</span><img src=‘data:image/jpeg;base64," + row.CodeBar + "‘/>";

str += "</div>";

return str;

},

onAfterFormatter: function (row) {

},

onLoadSuccess: function (rows, total){

}

};

//加载当前页面全部具有scroll-bind属性的div标签

snf.scrollDivLoad(self);

snf.scrollDivLoad事件一定要在scroll-bind对象定义之后在调用,本例子中,即应当在this.DemoSingleTable定义之后再调用此方法

1.4.3.    定义查询事件

//查询

this.searchClick = function () {

snf.scrollModelSearch("DemoSingleTable");//参数表示3.4.1中绑定的scroll-bind属性,本例子中即为DemoSingleTable

};

可以对瀑布式分页的数据源进行条件查询

1.4.4.    demo样例

程序路径:

/DEMO/DemoSingleTableScroll/ DemoSingleTableScrollNoGird(比较简略,通俗易懂)

/Sys/BusinessCard/BusinessCardAdmin(内容较全,包含所有事件和其他很多功能的集成)

可在程序中按照此路径增加菜单查看

时间: 2024-10-09 06:45:19

SNF快速开发平台MVC-瀑布式分页组件的相关文章

SNF快速开发平台MVC-高级查询组件

1.   高级查询 在我们做项目的时候经常想要按名称.编号进行查询数据,可在开发时会把最常用的查询条件写上,不常用的就不写了,也是因为把所有字段都写上太多了,布局不好看而且不实用.还有些查询条件几百年用那么一次,也不能用到时调整一下程序.基于这些考虑我们做的一个高级查询组件,可以把所有列都作为查询条件,把最常用的查询条件还正常放在页面上.点击高级查询按钮后,会有所以列作为筛选条件方便进行查找,别如果本次条件比较多还可以保存起来为一个查询方案,下次时可以方便再次查询. 1.1.      效果展示

SNF快速开发平台MVC-自由排序组件

1.    自由排序功能使用 在一些需要排序优先级的数据进行调整处理,如民族数据,在北方实施的时候汉族比较多,希望把汉族放在第一位.在蒙古实施项目时,蒙古族人最多把蒙古族放在第一选择位. 1.1.      效果展示 图 1.1 1.2.      调用说明 1.2.1.    定义自由排序模型 this.freeSort = new snf.freeSortOptionsModel();//自由排序模型 self.freeSort.set({ grid: self.grid, NameSpac

SNF快速开发平台3.0之--MVC 打印解决方案

SNF-MVC打印报表方案: 报表模块创建的过程如下: 利用Stimulsoft Reports客户端报表工具新增一个报表文件 *.mrt 当然你也可以拿好用的*.mrt模版文件进行复制出来一个,我常用这个方法. 按规定要求放于指定位置:Areas->Sys->Reports->BaseRole.mrt 打开对应的页面功能,点击打印即可,也可以在线编辑报表 第一步:配置打印按钮 第二步:配置打印方法 //打印 this.printClick = function () { snf.ope

SNF开发平台WinForm之十三-时间轴控件使用-SNF快速开发平台3.3-Spring.Net.Framework

一.显示效果如下: 二.在控件库里选择UCTimeAxis 拖拽到窗体里. 三.加入以下代码,在load事件里进行调用就可以运行了. #region 给时间轴控件加载数据 private void UCTimeAxisData() { //增加节点 List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>(); list.Add(new KeyValueP

SNF开发平台WinForm之九-代码生成器使用说明-SNF快速开发平台3.3-Spring.Net.Framework

下面就具体的使用说明: 1.获取代码生成器的授权码(根据本机)-----还原数据库-------改config-----代码生成器 改代码生成器Config 2.登录代码生成器 3.查看是否连接成功 4.配置参数 下图,可在字段右键选择控件编码字段,控件名称字段 5.生成代码 6.启动程序 这个系列教程文档,欢迎转载: SNF开发平台WinForm之十-Excel导入http://www.cnblogs.com/spring_wang/p/6128604.html SNF开发平台WinForm之

SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework

9.1运行效果: 9.2开发实现: 1.首先配置服务器端,把“SNFAutoUpdate2.0\服务器端部署“目录按网站程序进行发布到IIS服务器上. 2.粘贴语句,生成程序 需要调用的应用程序的Load事件或者Program入口的Main方法第一行代码加上如下代码: 注意:是主程序的 Load事件要加上调整自动更新程序的代码.要以模式打开窗口.如果没有差异会自动关闭升级窗口显示主窗口. 3.把下面目录里的文件拷贝到 应用程序的同级目录下: 4.配置WINFORMS应用程序目录下Updateli

SNF快速开发平台成长史

2017年:整体不管cs还是bs都进入到了快车道 5月份升级内容: 框架组和产品组正在全力升级中. 4月份升级内容: BS框架 页面显示效果的优化 BS框架 多平台切换 BS框架 OpenApi服务 BS框架 富文本控件集成了百度开源项目 参与人员: 王金斗.王翰智 3月份升级内容: CS框架 规则引擎 BS框架 规则引擎 参与人员: 王金斗.石瑀.张晓波 2月份升级内容: 代码生成器 BS选择控件代码生成 代码生成器 支持视图代码生成 代码生成器 增加数据库连接的配置功能 1月份升级内容: C

SNF开发平台WinForm之十-Excel导入-SNF快速开发平台3.3-Spring.Net.Framework

7.1运行效果: 2.Excel导入开发实现 2.1. 创建窗体,修改命名空间 新增的窗体命名“FrmImport表名”,这个导入窗口比较其它窗口会特殊一些,需要继承BaseFormImport父级窗体 2.2.在新建窗体中写方法 构造方法,是用来设置 导入的窗体名称,和下载导入模版名称,指定必填列. 2.3.AddItem在“导入数据”事件时会被调用,并且每一行数据转换成实体对象过来,我们可以对实体对象进行操作保存或者其它处理. 2.4.添加导入按钮 2.5.在调用按钮事件写入调用导入窗体代码

Winform开发框架之通用高级查询模块--SNF快速开发平台3.3-Spring.Net.Framework

最近项目确实忙,但也是一直忙于有关项目和框架技术的事情,也一直致力于改善我的WInform开发框架.使得自己及客户使用起来更加方便,更加友好,更加高效. 在很多程序模块中都很常见,也是给客户扩展查询的一个很好的补充,由于我一直希望我的Winform开发框架能够精益求精,所以做了这个模块,希望对今后我自己所有的项目以及框架本身,都能高效的使用. 1.通用高级查询模块的用途及介绍 既然称之为通用查询模块,那么他就不能与具体的表字段有耦合关系,但是要实现具体的查询,必须通过某种方式进行属性传递,实现更

SNF快速开发平台3.1之-- SNF.WorkFlow审核流简介

本项目是的在Spring.Net.Framework 平台之上进行研发.SNF.WorkFlow审核流是一款完全自主知识产权研发的为软件项目. 审核流基本概念:什么是审核流? 审核流:两个或两个以上的人,为了共同的目标,连续的以串行或并行的方式去完成某一业务. 业务:审核流所指业务涵盖了与经营相关的活动. 串行或并行:业务中的步骤也许以一步接着一步的方式进行,我们称之为串行:或者由不同的人或组合根据不同的情况处理,我们称之为并行. 两个或两个以上的人:如审核流的名称所表达的含义,一个人处理的业务