【问题标题】:XPages: Show busy dialog when tabPanel clicked on?XPages:单击 tabPanel 时显示繁忙对话框?
【发布时间】:2016-05-13 05:01:13
【问题描述】:

我是第一次使用 XPages 选项卡式面板。它通常运行良好,但我有一个漫长的过程,在第一次单击一个选项卡时运行,所以我想显示一个客户端繁忙的对话框,我们在切换到它时经常使用它。我尝试将一些客户端 JS 附加到关联的 tabPanel 的事件处理程序(使用 submit="true"),但这似乎不起作用。它执行客户端 JS,但不再切换选项卡。 (我在客户端事件处理程序中返回 true。)是否有另一种可行的方法?仅供参考,我假设我可以在冗长的代码末尾调用 view.postScript(...) 以删除繁忙的对话框。

与我的问题一样,我无法发布代码来证明这一点,抱歉。

谢谢, 里德

【问题讨论】:

  • 您是否尝试过使用 djTabContainer/djTabPane 代替?看到这个答案:stackoverflow.com/a/25260393/785061
  • 我不知道这一点,我在这里的搜索没有找到那个问题。谢谢!
  • 奇怪的是,我尝试使用 djTabContainer,但 djTabPane 内的重复无法访问关键的 viewScope 变量(它为空)。这确实适用于选项卡式面板,所以我回到了那个。否则,我认为它会工作得很好。

标签: xpages


【解决方案1】:

我用这个帖子:http://xpagesera.blogspot.com/2012/05/add-ajax-loading-control-in-xpages-for.html

对此有很大的影响。以下是文章正文:

在 XPages 中添加 AJAX“正在加载..”控件以进行部分更新

这是一个两步过程:

  1. 将以下 Dojo 模块添加到您的 XPage。

    <xp:this.resources>
    <xp:dojoModule name="extlib.dijit.ExtLib"></xp:dojoModule>
    <xp:dojoModule name="extlib.dijit.Loading"></xp:dojoModule>
    </xp:this.resources>
    

     

  2. 将以下行添加到将用于部分更新的按钮/链接的 EventHandler:

    <xp:this.onStart><![CDATA[XSP.startAjaxLoading()]]></xp:this.onStart>
    

就是这样!

将出现类似的“请稍候..”对话框,并在部分更新完成后再次显示该页面..

【讨论】:

  • 我熟悉为按钮/链接做这种事情。向它们添加事件处理程序非常常见。我的问题与标签面板有关;我认为您推荐的内容不会比我尝试过的更好。当我添加事件处理程序时,选项卡不再切换。不过谢谢!
  • 这是我可以的事件处理程序' t 放在上面(对于看到这个的人)。 Reid - 我实际上已经将这些放在标签的点击事件中并让它们工作。
  • 谢谢,Brian,那我试试看。
  • 我看到的和以前一样;页面从第一个选项卡开始,我单击第二个冗长的选项卡;它提交,但停留在第一个选项卡上。在与第二个选项卡关联之后,我有一个 与您的行。知道有什么问题吗? (我也没有看到任何“加载”消息。)
  • 如果您可以发布一个工作示例,说明如何将这些事件与选项卡面板或至少完整的相关位相关联,那将非常有帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多