【Oracle APEX开发小技巧16】交互式网格操作内容根据是否启用进行隐藏/展示
在日常开发中,有想要根据某一状态或条件去限制/隐藏对应权限或操作按钮的情况,于是
用简报模板列表进行展示,并提供以下功能:
显示模板基本信息
提供启用/禁用模板的开关
提供编辑模板的入口
根据模板状态显示不同的操作选项
效果展示:
1.通过编辑禁用模板;
2.被禁用的模板操作权限被关闭↓
代码:
select BRIEFING_TEMPLATE_ID,TENANT_ID,REVISION,DEL_FLAG,CREATED_BY,CREATION_DATE,UPDATED_BY,UPDATE_DATE,TEMPLATE_NAME, DECODE(FREQUENCY_TYPE,'DAY','日报','WEEK','周报','DOUBLE_WEEK','双周报','MONTH','月报','YEAR','年报') FREQUENCY_TYPE,REFERENCE_ID,TEMPLATE_TYPE,--DECODE(IS_USING,1,'启用','未启用') IS_USING,IS_USING,DECODE(IS_USING,0,'','模板设计') OPERATOR ,-- 该按钮配置先保留DECODE(IS_USING,1,'fa fa-edit','fa fa-edit') EDIT_BTN,'<div class="form-check form-switch"><input class="form-check-input m-auto text-center" type="checkbox" role="switch" id="flexSwitchCheckDefault" '|| DECODE(IS_USING,1,'checked','') ||' onchange=click_using_flag('||BRIEFING_TEMPLATE_ID||')>
</div>
' IS_USING_FLAGfrom TASK_BRIEFING_TEMPLATE WHERE DEL_FLAG = 0 AND TENANT_ID = V('USER_TENANT') AND TEMPLATE_TYPE='GENERAL'
说明:
状态字段:
IS_USING
:是否启用(原始值)OPERATOR
:根据是否启用显示操作文本(未启用时为空,启用时显示"模板设计")EDIT_BTN
:编辑按钮的图标(始终显示'fa fa-edit',无论是否启用)
交互元素:
IS_USING_FLAG
:生成一个HTML开关按钮,用于切换模板启用状态包含一个checkbox,当IS_USING=1时显示为选中状态
当状态改变时调用
click_using_flag
函数,并传入模板ID