Freemarker之封装easyUI的datagrid,旨在生成快捷方便的管理列表(一)

本文介绍了一个基于 EasyUI 的 Datagrid 组件封装过程,包括如何定义输入参数、实现前后端交互及显示数据等关键步骤。作者还分享了解决在列表中放置两组相同长度数据的技术难点。

废话不多说,先上代码:
1、grid.ftl
这个就是封装的datagrid的通用组件
自定义输入参数的介绍:
controller:这个是我后台的地址(这里注意,我这里后台的地址命名是有规范的,默认添加、删除、更新、获取所有数据、根据id获取单个数据的地址分别为:add、delete、update、findById、findAll。前面的地址为/system/实体名)
title:总表格名
fields :这里注意了,这个是显示数据的必输字段,参考JSON,我自定义的格式为:fields:values,这样的格式,多条用逗号隔开。files是后台实体的字段名,values是字段名对应的列头
rownumbers=”true” :行号
singleSelect=”true” :是否能被选中
width=”1000px” :宽度
height=”500px”:高度

<#macro grid controller title fields rownumbers="true" singleSelect="true" width="1000px" height="500px">
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Auto Height for Tabs - jQuery EasyUI Demo</title>
    <link rel="stylesheet" type="text/css" href="../lib/easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../lib/easyui/themes/icon.css">
    <script type="text/javascript" src="../lib/easyui/jquery.min.js"></script>
    <script type="text/javascript" src="../lib/easyui/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="../lib/easyui/locale/easyui-lang-zh_CN.js"></script>
    <script type="text/javascript" src="../lib/layer/layer.js"></script>

</head>
<body>
    <table id="table" class="easyui-datagrid" title="${title}" style="width:${width};height:${height}"
            data-options="rownumbers:${rownumbers},singleSelect:${singleSelect},url:'${controller}findAll',method:'get'">
        <thead>
            <tr>
                <#list fields?split(",") as x>  
                    <#list x?split(":") as y>
                        <#if (y_index ==0)>
                            <th data-options="field:'${y}',width:200">
                        <#else>
                            ${y}</th>
                        </#if>
                    </#list> 
                </#list>  
            </tr>
        </thead>
    </table>
</body>
</html>
</#macro>

2、调用公共组件

<#import "/common/grid.ftl" as userGrid>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Auto Height for Tabs - jQuery EasyUI Demo</title>

</head>
<body>
    <@userGrid.grid controller="/system/user/" title="用户管理" width="1100px" height="500px"
        fields="id: ,c_username:用户名,c_phone:联系方式,n_age:年龄,n_sex:性别">

    </@userGrid.grid>
</body>
</html>

在封装的时候还是遇到点问题,那就是在一个list中怎么把两组长度相同的数据放到同一个行里面。后面用下标判断解决了这个问题。
想看完整代码的可以去我的github上下载:github地址

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值