框架使用javascript实现的EXT风格的表格进行列表数据的展现和处理,包括ajax翻页、排序、查询、点击事件、checkbox选择、数据提交等。
最简单的表格创建代码如下:
var t = $("#mytable").ajaxgrid({colModel : [ { display : 'id', name : 'orgid', width : '40', type : 'checkbox' }, { display : '组织名称', name : 'orgname', width : '180', sortname : 'o.orgname',
cutsize : 2
}, { display : '父组织ID', name : 'parentid', width : '180' } ], managerName : "testPagingManager",
managerMethod : "testPaging"
}); var o = new Object(); o.orgname = "%"; $("#mytable").ajaxgridLoad(o);
<table id="mytable" style="display: none"></table>
调用jquery插件的ajaxgrid函数初始化表格组件,colModel为表格列定义配置 |
|
通过sortname属性,可以改变点击表格列头的默认排序字段名称(默认取name属性值),在多表联查需要指定具体表前缀时可以用此自定义排序字段名称处理 |
|
cutsize属性用于设置改字段显示时要截取到的长度,比如日期显示不想带时分秒,则截取固定长度10保留年月日 |
|
Ajax翻页调用的Manager在sprint中的bean id |
|
Ajax翻页调用的Manager的方法,接收参数必须是两个(FlipInfo fi, Map param),翻页信息类和查询参数map |
|
页面加载完成之后调用ajaxgridLoad进行首次数据加载,输入参数对象为查询条件(Manager方法的第二个参数接收),另外,也可利用表单 自动回填机制,在controller中做如下动作: |
|
隐藏样式的table元素定义 |
表格组件的各种功能例子代码如下:
<%@ page contentType="text/html; charset=utf-8" isELIgnored="false"%> <%@ include file="/WEB-INF/jsp/common/common.jsp"%> <html> <head> <title>AjaxPagingGrid测试</title> <script text="text/javascript"> $(function() { var t = $("#mytable").ajaxgrid({ searchHTML : 'searchHTML',click : clk,
dblclick : dblclk,
render : rend,
colModel : [ { display : 'id', name : 'orgid', width : '40', sortable : false, align : 'center', type : 'checkbox' }, { display : '组织名称', name : 'orgname', width : '180', sortable : true, align : 'left' }, { display : '父组织ID', name : 'parentid', width : '180', sortable : true, align : 'left', codecfg : "codeId:'test_code'"
} ], searchitems : [ { display : '组织ID', name : 'orgid' }, { display : '组织名称', name : 'orgname' } ], width : 1200, height : 400, managerName : "testPagingManager", managerMethod : "testPaging" }); function rend(txt,data, r, c) { if (c == 0) return '<input type="checkbox" value="'+txt+'">'; else return txt; } function clk(data, r, c) { $("#txt").val("clk:" + $.toJSON(data) + "[" + r + ":" + c + "]"); } function dblclk(data, r, c) { $("#txt").val("dblclk:" + $.toJSON(data) + "[" + r + ":" + c + "]"); } $("#btn").click(function() { var v = $("#mytable").formobj({
gridFilter : function(data, row) { return $("input:checkbox", row)[0].checked; } }); alert($.toJSON(v)); }); }); </script> </head> <body class="body-pading" leftmargin="0" topmargin="" marginwidth="0" marginheight="0"> <input id="txt" type="text" size="100"> <input id="btn" type="button" value="取数"> <div class="classification"> <div class="title">grid示例</div> <div class="list"> <div class="button_box clearfix"> <table id="mytable" style="display: none"></table> </div> </div> </div> <div id="searchHTML"> 组织ID:<input name="orgid" type="text" />组织名称<input name="orgname" type="text" /> </div> </body> </html>
实例
- 属性
-
属性 类型 类型 colModel 列描述,要求是一个数组(必须提供该参数)其中的每一个元素都应该是一个Object。colModel : [ { display : 'id',//对应数据中的字段名 name : 'orgid', width : '40%',//宽度可为数字或百分比[字符串] type : 'checkbox',//是否是checkbox或radio[一般只有第一列显示] hide:false//默认显示与否, sortType:'number', //按数字排序 },{ display : 'id1',//对应数据中的字段名 name : 'orgid1', width : '40%',//宽度可为数字或百分比[字符串] type : 'date',//是否是checkbox或radio[一般只有第一列显示] hide:false//默认显示与否, sortType:'date',//按时间排序 isToggleHideShow:false//控制在表头下拉菜单中是否显示列项[默认把name为'id','name','title'隐藏了] }] managerName 后台Manager的名称(必须提供该参数) managerMethod 后台对应Manager的方法名(必须提供该参数) click 单击事件返回值:row(行json对象),colIndex(所在列index值),rowIndex(所在行index值) dbclick 双击事件返回值:row(行json对象),colIndex(所在列index值),rowIndex(所在行index值) height 高度[px],默认200px width 宽度值[px],默认auto表示根据每列的宽度自动计算 resizable 是否可伸缩 usepager 是否分页[false] page 默认当前页[1] total 总页面数[1] useRp 是否可以动态设置每页显示的结果数[true] rp 每页默认的结果数[15] rpOptions 可选择设定的每页结果数[10,15,20,25,40] title 是否包含标题[false] query 搜索查询的条件 qtype 搜索查询的类别 nomsg 无结果的提示信息 blockOpacity 透明度设置 onChangeSort 当改变排序时执行的函数,默认为false。当该属性设置时,组件不再使用自己的查询机制。 onCurrentPageSort 是否只对当前页的数据进行排序,默认为false。当设置为true时,只对当前页的数据进行排序。 onSuccess 成功后执行的函数 slideToggleBtn bool 上下伸缩按钮是否显示 slideToggleUpHandle function 向上按钮委托执行的方法 slideToggleDownHandle function 向下按钮委托执行的方法 resizeGridUpDown 动态设置分割条位置,参数为'up','middle','down'。grid.grid.resizeGridUpDown('up') customize 是否启用个性化存储,默认为true customId 个性化存储id ,默认值为$.ctx._currentPathId,自定义的化在默认值后添加后缀,例如customId : $.ctx._currentPathId_+"${xxx.ff}"; - 方法
-
方法 描述 获取grid参数 grid.p//得到该grid所有参数 获取grid事件 grid.grid//得到该grid处理方法 getSelectRows() var rows = grid.grid.getSelectRows(); //获取列表组件选中行记录,返回值为数组[{"id": 10001, ... },{"id": 10001, ... }] callBackTotle 设置totle条数回调函数 类似:render