我是Oracle APEX的新手。你可以帮我解决下面的问题吗? 我正在使用APEX 5.0
我有一个主详细信息页面,其中有一个表格形式。其中一列是从选择列表中使用LOV。
现在我必须将此列值设置为只读,以便用户无法更改它,除非在单击“添加行”时在新行上进行更改。
非常感谢提前:)
拉夫
答案 0 :(得分:3)
我假设您知道如何使用浏览器的“Inspect element”功能。 (如果没有,那么这是怎么回事):
运行您的页面。然后右键单击要设置为只读的列中的一个选择列表。页面底部会出现一个窗口。获取它的名称属性。应该是以“f0 ..”开头的东西(例如“f01”)。
然后在页面上的“在页面加载时执行”部分输入以下代码行:
$("[name=the_name_you_just_copied]").css("pointer-events","none");
示例行:$("[name=f01]").css("pointer-events","none");
答案 1 :(得分:1)
这可以使用javascript完成。请阅读以下演示,其中包含详细说明,以执行此类任务Tabular Form's Column Read-Only and No Duplication和此 discussion
例如:
if ($x(field_id).value != "") {
$x(field_d).readOnly = "readonly";
}
答案 2 :(得分:0)
感谢万斯的解决方案。我有一个类似的问题,但我希望它只是一个动作的只读。所以$("[name=f01]").css("pointer-events","none");
也可以在任何javascript函数中使用。
function alerts_c(){
var insno= $v('P14_SYSINSNO');
var workDate = $v('P14_WORK_DATE');
$('.t-Report-report tr').last().find('[name=f02]').val(insno)
$('.t-Report-report tr').last().find('[name=f03]').val(workDate)
$("[name=f02]").css("pointer-events","none");
$("[name=f03]").css("pointer-events","none");
apex.event.trigger(document,"alerts_d");
};