javascript - 将动态操作添加到动态创建的按钮
问题描述
根据我之前的帖子,我正在 Oracle Apex (v21.1) 上构建某种仪表板。我的仪表板显示每个部门的库存状态。如您所见,我在列表末尾添加了一个按钮,该按钮仅在状态为“已验证”时显示(绿线)
这是我的交互式报告的代码:
SELECT
PK_DASHBOARD,
FK_SERVICE_DASHBOARD,
ETAT_DASHBOARD,
DATE_DASHBOARD,
CASE
WHEN etat_dashboard = 1 THEN '<button>Libérer</button>'
END as bt_dashboard,
CASE
WHEN etat_dashboard = 0 THEN '<a href="mailto:'||email_dashboard||'?Subject=RAPPEL - Inventaire communal"><span aria-label="Mail"><span class="fa fa-envelope-o" aria-hidden="true" title="Mail"></span></span></a>'
WHEN etat_dashboard = 1 THEN '<span aria-label="Mail"><span class="fa fa-check-circle-o" aria-hidden="true" title="Mail"></span></span>'
END as ico_dashboard
FROM inv_tb_dashboard
当用户按下按钮时,我想添加一个动态操作。我不知道如何将动态操作链接到以这种方式创建的按钮。是否有某种带有 a 的 javascript 函数,getElementById
或者我应该将 a 添加onClick=""
到我的按钮?
我的动态操作将只是一个服务器端代码,比如UPDATE inv_tb_dashboard SET etat_dashboard = 0
,而不是太棘手的东西。
如果您有任何想法可以引导我走上正确的道路,请不要犹豫。
如果您需要更多详细信息,可以问我更多问题。
谢谢,
托马斯
解决方案
如果您有预定义的操作,则创建一组操作,并根据您的条件向按钮添加操作,这可以使用 javascript 轻松完成示例:
const actions=['delete','update'];
let button=document.getElementByID('btn');
const queryExecutor=action=>{
//run action code
}
//Add Condition for Button
if(user=='admin'){
//add action to button dynamically
button.addEventListener('click',queryExecutor('delete'));
}
if(user=='user'){
//add action to button dynamically
button.addEventListener('click',queryExecutor('update'));
}
推荐阅读
- python-3.x - DynamoDb 表 get_item
- java - 仅给定轮廓标记,如何在 2D 地图中查找多边形?
- visual-studio - 调试 fortran mex 代码时的奇怪值
- android - 相对布局中的按钮位置变化
- excel - 打开 Excel 文件,在最后一行添加公式,保存 Excel 文件
- html - SVG 图像引用策略
- python - 如何修复 Smooch Python API 中重复的消息回复?
- php - 如何修改 Yii2 createCommand() 函数生成的结果
- excel - 如何激活主工作簿并将其放在所有打开的 Excel 文件的前面?
- java - 所有多边形都变得透明,如何修复?