AdminEAP框架数据列表render的五种方式

##介绍
在AdminEAP框架中,数据列表使用Bootstrap-DataTables组件(基于Jquery-DataTables),在AdminEAP框架中进行二次封装,其中有些数据列需要在原来的数据基础上进行二次渲染,分别支持以下几种方式:
- render (type=eq) 固定值的’翻译’
- render (type=window) 弹出窗体
- render (type=link) 超链接
- tooltip 鼠标悬停提示
- fnRender 渲染回调函数

xml配置示例

以下是以上几个属性在xml配置中的示例和部分说明。

 <query id="message_draft" key="id" tableName="我的草稿箱" className="com.cnpc.tool.message.entity.Message" widthType="px">
        <column key="rowIndex" header="序号" width="80"/>
        <column key="id" header="id" hidden="true"/>
        <column key="sendUser" header="发送人" hidden="true" classType="String" allowSort="false" width="150"/>
        <!--enableTootip(是否显示) maxLen(最大长度默认10,可在dataTables.js修改默认值) tooltip(指定tooltip来源,可不配,缺省为本身) 长文本鼠标悬停显示-->
        <!--弹窗方式render="type=window"使用;所需参数同modals.openWin的参数-->
        <!--<column key="sendSubject" header="主题" classType="String" align="left" render="type=window,winId=messageEditWin,url=/message/edit?id=[id],title=弹窗测试[sendSubject]" enableTooltip="true" maxLen="20" allowSort="true" width="150"/>-->
        <!--超链接方式 render="type=link",method方法名称,params方法参数,分号;分隔,如不需要参数params为可为空,默认注入rowId-->
        <!--<column key="sendSubject" header="主题" classType="String" align="left" render="type=link,method=loadPage,params='/message/edit?id=[id]';'#contentBody'" enableTooltip="true" maxLen="20" allowSort="true" width="150"/>-->
        <column key="sendSubject" header="主题" classType="String" align="left" render="type=link,method=showDetail" enableTooltip="true" maxLen="20" allowSort="true" width="150"/>    
        <column key="sendTime" header="发送时间" classType="Date" allowSort="true" dateFormat="yyyy-mm-dd hh:ii"  operator="between" width="150"/>
        <column key="messageType" header="类型" classType="String" align="left" width="50" fnRender="fnRenderMessageType"/>
        <!--isServerCondition=true value=0注入服务器端查询条件,也可在前端以type=hidden隐藏域的方式注入-->
        <column key="messageStatus" header="状态" isServerCondition="true" value="0" classType="String" allowSort="false" width="50" fnRender="fnRenderMessageStatus"/>
        <column key="messageFlag" header="标记" classType="String" allowSort="true" width="150" fnRender="fnRenderMessageFlag"/>
        <column key="fileIds" header="附件" classType="String" width="150" fnRender="fnRenderFileIds"/>     
          <!--<column key="deleted" header="是否删除" classType="String" allowSort="true" width="150" render="0=可用,1=禁用"/>-->
    </query>

使用说明

render(type=eq)

示例:
(1) render=”type=eq,0=可用,1=禁用” (其中type=eq可缺省)
(2) render=”1=禁用,else=可用”
配置以后,组件会把相应值翻译为对应值。

type=eq eq类型的render,可缺省

render(type=window)

配置后,点击该列值,会弹出一个模态窗体,将配置的所有参数传递给modals.openWin方法。
示例:
(1) render=”type=window,winId=messageEditWin,url=/message/edit?id=[id],title=弹窗测试[sendSubject]

其中[id],[sendSubject]会被替换为当前行对象的该列的值,是指定列(column key=’id’和column key=’sendSubject’)的值

type=window:窗体render,必配
winId:窗体id,必配
url:url路径,必配

其他参数通modals.openWin参数,如width等等

配置某列的超链接。配置形式是调用onclick方法,建议比较复杂的超链接采用这种配置。
示例:
(1) render=”type=link,method=loadPage,params=’/message/edit?id=[id]’;’#contentBody’”
(2) render=”type=link,method=showDetail”

其中[id]会被替换为当前行对象的该列的值,是指定列(column key=’id’)的值

type=link:超链接render,必配
method:超链接执行方法名称,必配
params:方法执行参数,分号(;)分隔,若缺省,会自动将当前行id注入方法,及query key执行的值

需要注意的是,前台需要相对应的js方法,比如,以上两个实例需要前端由loadPage(url)和shoWDetail(rowId)方法。

fnRender

更复杂的前端展示和业务逻辑,需要在前端编写相应的业务逻辑
示例:
(1):fnRender=”fnRenderMessageStatus”

对应前端脚本

function fnRenderMessageStatus(value, type, rowObj,oSetting) {
    if (value == 0) {
        return '<span class="label label-warning">草稿</span>'
    } else if (value == 4) {
        return '<span class="label label-success">已发送</span>';
    }
    return value;
}

指定的fnRender方法中会通过Jquery-DataTables接口自动注入四个参数

value: 当前单元格的值
type:单元格样式,一般为display
rowObj:当前行对象,可通过rowObj.name等形式获取其他列的值
oSetting:表格全局配置对象

tooltip

在表格中显示长文本的时候,有时候需要截断,然后鼠标悬停时显示,可采用该配置

示例:
(1)enableTooltip=”true” maxLen=”20” tooltip=”id”
后续将修改成 render="type=tooltip,maxLen=20,tooltip=[id]"

enableTooltip:默认为false,只有配置true才生效,才会执行截断
maxLen:截断长度,如果不配置,默认为20
tooltip:鼠标悬停的数据来源,如不配默认为当前数据本身

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值