基于jquery、模板引擎、自定义事件类实现GridView组件

完成效果:

需求:

根据数据配置来展示的类似GridView。

设计配置项:

datasource:[{},{}],     //数据源绑定 json格式
null,             //默认不设置 自动获取父节点的宽度
height:200,             //列表高度
pageModule:{                    //--分页配置--
    index:1,                    //当前页
    pageNum:50,                 //每页显示数量
    total:,                     //总数
    pageRate:[50,100,200,500],  //设置每页显示数量
    onChange:function(pIndex),  //分页事件回调
    onSetNum:function(pNum),    //设置每页显示数量
},
colHead:[    //列头合并用
    { title:"我是合并1",rowspan:2 }
],
colModule:[{            //--字段映射文本配置--
    name:"",            //属性名
    title:"",           //列头名
    100,          //宽度 例如:100=100px
    align:"left",       //对齐方式:left center right
    className:"",       //默认无样式  可添加空格分割的class 可控制子元素样式
    type:"Label",       //默认显示Label 输入框Text 选择框Select 弹层MaskSelect 4种
    formatter:null,     //function(val)  格式化数据用,只适用于Label与Text列
    bindDataSource:[],  //Select绑定数据 {key:"",value:""}
    triggerList:[       //绑定多个事件
     {
      triggerType:"blur",     //绑定事件类型     triggerChange:function(pData,pBtn,pRowPanel), //绑定事件回调
  }
  ]
onMask:function(pData,pBtn,pRowPanel){}, //MaskSelect的click回调 }], rowAddModule:"col1,col2,col3", //行新增配置 templateModule:[], /*[]调整 { isDisable:false, //默认不禁用 title:"修改", //按钮文本 class:"bluebtn", //按钮样式 蓝色bluebtn 灰色graybtn 橘色orangebtn iClass:"icon-pencil", //图标样式 onChange:null //点击回调 function(pData) }*/ sortModule:{ //排序模块 global:false //是否全局排序 默认false 为true不执行本地排序但触发onChange onChange:function(sortName,sortOrder) //sortName排序属性、sortOrder排序方式 desc降序 esc升序 } otherItems:[ //其他数据的配置功能 { title:"",text:"" } ], isCheckBox:false, //是否可选功能,列头全选:true false 默认false
isSort:true,    //是否开启排序 默认true
isNumber:true,   //是否自动序号 默认true colOrderKey:"", onDetail:null, //function(pData,pDom) onClick:null, //function(pData) onDoubleClick:null //function(pData)

 未完待续……

原文地址:https://www.cnblogs.com/beiou/p/4113327.html