现在我正在开发一个Oracle Apex页面,它是一个交互式报告(让它具有ID
我的报告
)还有两个复选框
p1000_标志_1
和
p1000_标志_2
,这与前者相关,帮助我选择IR查询的某些部分。由于apex不假设复选框进行提交(对于radiobuttons不合适),我编写了javascript函数作为解决方法:
/* On change any checkbox */
function toggleQuery(nFlag){
if(!(nflag > 0 && nFlag < 3)) return;
sFlag = "P1000_FLAG_" + String(nFlag);
var nChecked = (document.getElementById(sFlag + "_0").checked ? 1 : 0);
apex.submit({set:{sFlag:nChecked}});
}
另外,我还有一个进程,它在加载我的页面时执行:
/* Process: On Load â Before Header, Once Per Visit Page */
begin
--initiating several hidden values,
--which are not changed during working with the page
:P1000_HIDDEN := GET_HIDDEN(1);
--...here goes the code, which fills other hidden items...
--
--this piece stands for the default choice in current page
if :P1000_ENTERED is null then
:P1000_FLAG_1 := 1;
:P1000_FLAG_2 := 0;
else
:P1000_FLAG_1 := nvl(:P1000_FLAG_1,0);
:P1000_FLAG_2 := nvl(:P1000_FLAG_2,0);
end if;
:P1000_ENTERED := 1;
end;
当我只通过复选框进行选择时,我的页面工作得很好。但我有一个问题,当我执行一个操作时,它在Ajax回调的帮助下工作,并以jquery命令结束:
$("#my_report").trigger('apexrefresh'); //there is only changing some styles (.css(...)) bound to IR refresh
当我第一次打开页面时,执行我的操作,然后尝试选中第二个复选框(默认情况下不选中),apex的行为就像我第一次再次打开页面一样。我意识到了这一点,当时我试图让我所有的隐藏物品不受保护(否则我会犯一个错误,试图手动更改受保护的隐藏物品)。
所以我的问题是:我该怎么做才能使我的页面正常工作?我使用Oracle 11g,apex 4.2.6.00.03