2017-10-17 85 views
0

当前我正在尝试打开一个模式对话框,其中包含填充来自支持bean的值的表单。由于每个按钮都与表中的一个条目链接,所以该bean被加载(或者应该被加载,因为目前不工作)与按钮中提供的对象。当前的按钮代码如下。无法使用onclick更新引导程序模式

模式和触发事件的按钮位于同一页面上,但此页面有两个bean。一种用于模式的功能,当您单击按钮(用于修改给定对象)时应立即显示,另一种用于在主窗口中打印所有数据。

基本上我想要做的是实例化一个bean,将给定的对象传递给第二个bean通过请求发出的@PostConstruct方法,并且在所有进程完成后显示模态,刷新模态然后展示它。

<b:button value="" 
    icon-size="2x" 
    onclick="#{bean.dummy()}" 
    style="height: 64px; width: 64px; float: right; border: none; margin-top: 25px; border-radius: 0px;" 
    oncomplete="$('.config_modal').modal()"> 
     <f:param name="action" value="#{bean.value}" /> 
</b:button> 

除了那段代码,我已经尝试了下面列出的几个修改。前一个是最近的。

  • 此前JS modal()调用是在'onclick'事件中。
  • 添加了一个'虚拟'方法,因为模态对话框从不显示实际代码,因为我认为我需要一种触发器。
  • 它不是b:commandButton,因为它刷新整个页面,对话框从不显示。
+0

你可以尝试'oncomplete =“$('。config_modal')。modal('true');”'并确保b:模态''将styleClass作为config_modal,即'b:modal id =“config_modal”styleClass =“config_modal”' – MitchBroadhead

+0

,但在页面重新载入后oncomplete不会触发。你需要使用ajax。例如''。你想重绘的页面的任何部分必须在'' – MitchBroadhead

+1

@MitchBroadhead感谢Mitch的答复,我在你的第二个评论中做了你的建议,但仍然无法工作,我仍然不知道我是什么做错了......价值在另一个bean中被正确接收。 好吧,在我的情况发现了错字,从里面.modal()删除**'真'**,现在它的工作。非常感谢!回复一个答案,以便我可以接受它。 – SkPr0

回答

0

oncomplete在页面重新加载后不会触发。你需要使用ajax。例如<h:form><b:commandButton value="click" action="#{bean.dummy}" oncomplete="$('.config_modal').modal('true');"><f:ajax render="@form"/></b:commandButton></h:form>。你想重绘的页面的任何部分必须位于<h:form>