当前位置: 首页 > news >正文

我的jQuery动态表格插件

   在我的页面处理中有时需要进行表单处理,需要一个用户可以添加修改多条记录。在这里我们需要控制用户的输入验证,表格的添加删除,用户输入数据的统计聚合,还有相应的计算列比如商品的总价=商品的单价*商品数量,再如,同时在用户提交的时候我还要需要获取提交到后台服务端处理在存储到我们的数据库。本插件则简单的处理了这些繁琐的事情。

插件属性说明:

1:rowTemplate:这是插入列的模板,在模板中我们的序号这种行号标示的需要rownum 的class。在模板中的需要唯一编号的比如我们的radiobutton的name属性在每个td单元格需要唯一的name组,再如id这种需要唯一的属性,需要{0}的占位符。同时在我们的表格处理中有些行为统计行或者数据的固定行,是不会被用户删除的,则需要fixed=true。以及每个输入或者label等控件,需要回传提取值的需要有property=“propertyname”标示。

2:addTrigger:这是一个触发增加行的jQuery选择器。

3:addPosition:是插入行的插入位置,默认在last最后,但是应我们的需求,可能在最后是汇总行等固定行,所以还添加的三种方式:first,还有就是数值,正数表示从开始行开始计算,负数表示从最后开始计算。

4:removeTrigger:删除标示,它是一个数组,可以有多个删除按钮,同时数组的每个对象也是一个对象有selector触发按钮的jQuery选择器,handler触发的处理方式,取值有first删除第一行,last最后一列,current当前列,所有的删除都是删除非fixed=true的列。

5:同时可以通过$(selector).updateSortNum();替换所有的td 带有rownum的行号列。其实这里我考虑可以去掉td的限制。

6:$(rowselector).getRowObj():获取以property为属性的javascript行对象。

7:$(tableselector).getTableObj():获取table的以property为属性的javascript数组对象,是行对象的集合(数组)。

8:getSource(saveHiddentField):获取xml组织的属性集,如果传入了saveHiddentField选择器,这会自动赋值在saveHiddentField上。

这里有item: , root: item为每行数据xml的节点默认item,root为xml根节点默认root。获取了xml,我们就可以在后台直接解析xml,或者是用DataSet.ReadXml()直接转化为DataTable。

8:$(inputselector).getValue():获取控件的值:支持text,label,checkbox,radio,label,td,textarea的取值。其中radio取值选中value,checkbox取值为所有选中行value的“,”号分隔字符串。

9:Calculates:计算汇总,是一个数组对象,具有selector:汇总显示控验证财务的实际支出额不能高于审批额,而审批额不能高于实际的预算额件的选择器,column:汇总的属性,对应我们上面所附加的property属性。func:为汇总处理方式:支持聚合函数:sum,max,min,count,avg,以及用户自定义函数(必须具有返回值),传入参数为一个整列property取值数组Array。

10:CalculatesColumn:计算列,同样是一个js数组,具有trigger数组,表示触发计算的属性property,column计算列的property,func自定义处理函数。(这里废话几句本想用表达式,使用eval处理自动计算,但是觉得需要的变化太多不好控制,所以不如交给用户实现一个函数作为代理委托,作为回调函数);这里可以用来处理,商品的总价=商品的单价*商品数量,一个上面所说的验证财务的实际支出额不能高于审批额,而审批额不能高于实际的预算额。同时这里也可以作为验证的触发器。

在这个插件中没有数据类型的验证,由于验证的需要变化太大,太多,而且我们一级有了很多优秀的Jquer验证插件,配合使用将用很实用。同时也可以自己控制:比如我的两个简单的验证:

复制代码
$( " .datetime " ).live( " focus " function () { 
                WdatePicker({ readOnly: 
true , dateFmt:  ' yyyy年MM月dd日 '  }) // MyDate97 
            }); 

            $(
" .number " ).live( " keyup " function () { 
                
this .value  =   this .value.replace( / [^-\d\.] / g,  '' ); 
            }).live(
" keydown " function (e) { 
                
if  (e.which  ==   189 ) { 
                    $(
this ).val( - 1   *  parseFloat($( this ).val())).trigger( " change " ); 
                    e.stopPropagation(); 
                    e.preventDefault(); 
                } 
            });
复制代码

上面废话太多,下面直接demo:

哦忘了提醒一句,在这个插件中要求table遵循标准w3c,thead,tbody。在thead中我们可以自己加入表头设置,不管多复杂的多表头结构。

View Code

 

未命名 

测试代码比较乱,没有考虑实际性质,比如标题日期,作为了计算列,年龄作为了统计列,在后台的input汇总,敬请原谅。有机会在好好的写几个Demo。

有什么bug,敬请大家提出,我会尽快修复。同时也谢谢各位的不舍赐教。

我的Jquery系列还有: 

我jQuery系列之目录汇总

demo和文件下载


本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2011/03/25/1994481.html,如需转载请自行联系原作者

相关文章:

  • ExcelReport第一篇:使用ExcelReport导出Excel
  • select空间提交form表单传递参数
  • 反射:InvokeMethod 活动调用多种方法的方法配置要点
  • wampserver配置https
  • 小型软件项目开发流程探讨
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • iOS根据网络图片的size大小设置UIImageView的大小
  • sqlmap 本地安装
  • Ubuntu server 14.04升级16.04
  • 提取CString中的汉字及个数
  • connect-flash 用法详解
  • JavaScript的arguements
  • Perceptual Losses for Real-Time Style Transfer and Super-Resolution and Super-Resolution 论文笔记...
  • 微服务学习笔记二:Eureka服务注册发现
  • php知识总结(二)
  • 30天自制操作系统-2
  •  D - 粉碎叛乱F - 其他起义
  • eclipse的离线汉化
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • HashMap剖析之内部结构
  • JavaScript设计模式与开发实践系列之策略模式
  • JAVA多线程机制解析-volatilesynchronized
  • java中具有继承关系的类及其对象初始化顺序
  • jquery ajax学习笔记
  • k8s 面向应用开发者的基础命令
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • mysql常用命令汇总
  • quasar-framework cnodejs社区
  • 多线程 start 和 run 方法到底有什么区别?
  • 搞机器学习要哪些技能
  • 前嗅ForeSpider教程:创建模板
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 深入浅出webpack学习(1)--核心概念
  • 首页查询功能的一次实现过程
  • 问题之ssh中Host key verification failed的解决
  • 学习ES6 变量的解构赋值
  • 学习JavaScript数据结构与算法 — 树
  • 在Mac OS X上安装 Ruby运行环境
  • 做一名精致的JavaScripter 01:JavaScript简介
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​Spring Boot 分片上传文件
  • ​人工智能书单(数学基础篇)
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (五)Python 垃圾回收机制
  • (转)LINQ之路
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .cn根服务器被攻击之后
  • .NET 5种线程安全集合
  • .NET开源快速、强大、免费的电子表格组件
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • ::前边啥也没有
  • @JoinTable会自动删除关联表的数据
  • @Resource和@Autowired的区别