Oracle APEX-我需要帮助在IG报告上设置动态搜索筛选器

Oracle APEX-我需要帮助在IG报告上设置动态搜索筛选器,oracle,oracle-apex,Oracle,Oracle Apex,我有一个IG区域,在那里我禁用了工具栏并创建了自定义搜索项 我希望用户能够在搜索项(名为P8_search)上键入名称的前三个字符,IG报告将仅显示以这三个字符开头的名称 这应该在不单击任何按钮的情况下发生。IG报告查询如下所示: select member_id, first_name, last_name , address, dob, home_phone, cell_phone, email_address from member_profile where first_name lik

我有一个IG区域,在那里我禁用了工具栏并创建了自定义搜索项

我希望用户能够在搜索项(名为P8_search)上键入名称的前三个字符,IG报告将仅显示以这三个字符开头的名称

这应该在不单击任何按钮的情况下发生。IG报告查询如下所示:

select member_id, first_name, last_name , address, dob, home_phone, cell_phone,
email_address from member_profile where first_name like '%'||:P8_SEARCH||'%';
我还创建了带有键释放事件和True action Execute JavaScript代码的动态动作,如下所示:

var keyPressCount=0;

$("#P8_SEARCH").on("keypress", () => {
    if (keyPressCount < 2) {
        keyPressCount++;
    } else {
        $s("P8_SEARCH", apex.item( "P8_SEARCH" ).getValue());
    }
})
var按键计数=0;
$(“#P8_搜索”)。在(“按键”,()=>{
如果(按键计数<2){
按键计数++;
}否则{
$s(“P8_搜索”,apex.item(“P8_搜索”).getValue();
}
})

如何在不提交页面的情况下实现这一点?如有任何建议,我将不胜感激。示例:

如果搜索项存储在一个关联的表中,我的想法是您可以关联一个PL/SQL表达式以使用进程执行。此过程可以在自定义操作上执行

另一个想法是将动态操作与隐藏的按钮按下相关联,并使JavaScript代码单击按钮。然后,您可以使用键释放事件“模拟”动态操作的触发器的存在


您觉得怎么样?

如果搜索项存储在关联的表中,我的想法是您可以关联一个PL/SQL表达式以使用进程执行。此过程可以在自定义操作上执行

另一个想法是将动态操作与隐藏的按钮按下相关联,并使JavaScript代码单击按钮。然后,您可以使用键释放事件“模拟”动态操作的触发器的存在


你觉得怎么样?

在动态操作add
apex.region(“yourStaticId”).refresh()中为你的IG区域设置一个静态id
对于JS代码,这将只刷新区域。 大概是这样的:

var keyPressCount=0;

$("#P8_SEARCH").on("keypress", () => {
    if (keyPressCount < 2) {
        keyPressCount++;
    } else {
        $s("P8_SEARCH", apex.item( "P8_SEARCH" ).getValue());
        apex.region("yourStaticId").refresh();
    }
})
var按键计数=0;
$(“#P8_搜索”)。在(“按键”,()=>{
如果(按键计数<2){
按键计数++;
}否则{
$s(“P8_搜索”,apex.item(“P8_搜索”).getValue();
region(“yourStaticId”).refresh();
}
})

在动态操作add
apex.region(“yourStaticId”).refresh()中,为您的IG区域设置一个静态id
对于JS代码,这将只刷新区域。 大概是这样的:

var keyPressCount=0;

$("#P8_SEARCH").on("keypress", () => {
    if (keyPressCount < 2) {
        keyPressCount++;
    } else {
        $s("P8_SEARCH", apex.item( "P8_SEARCH" ).getValue());
        apex.region("yourStaticId").refresh();
    }
})
var按键计数=0;
$(“#P8_搜索”)。在(“按键”,()=>{
如果(按键计数<2){
按键计数++;
}否则{
$s(“P8_搜索”,apex.item(“P8_搜索”).getValue();
region(“yourStaticId”).refresh();
}
})

谢谢你的建议,我将尝试按下隐藏按钮的方法…谢谢你的建议,我将尝试按下隐藏按钮的方法…谢谢你的回复,我在JS代码中添加了刷新行,但我收到错误“Uncaught TypeError:无法读取null的属性“refresh”我猜设置P8_搜索项的会话值有问题。试着研究一下。别忘了在IG区域设置你的静态id,在我的示例中,你必须将静态id设置为你的静态id。谢谢!成功了。我之前使用的是“#P8_SEARCH”,而不是“P8_SEARCH”。谢谢您的回复,我在JS代码中添加了刷新行,但我收到了错误“Uncaught TypeError:无法读取null的属性‘refresh’”。我想设置P8_SEARCH项的会话值可能有问题。试着研究一下。别忘了在IG区域设置你的静态id,在我的示例中,你必须将静态id设置为你的静态id。谢谢!成功了。我之前用的是“#P8_SEARCH”,而不是“P8_SEARCH”