从重复控件打开 Bootstrap 模态(对话框)

Opening a Bootstrap modal (dialog) from a repeat control

我在从重复控件调用 bootstrap 控件时遇到一些问题。

在显示对话框之前,我想设置一些 viewscope 变量以根据调用对话框的行用新内容更新对话框。

这是我试过的三个按钮:

              <button type="button" class="btn btn-info" data-toggle="modal" data-target="#myModal">Open 1</button>
              <xp:button value="Open 2" id="button1"
                  styleClass="btn btn-info">
                  <xp:this.attrs>
                      <xp:attr name="data-toggle" value="modal"></xp:attr>
                      <xp:attr name="data-target"
                          value="#myModal">
                      </xp:attr>
                  </xp:this.attrs>
                  <xp:eventHandler event="onclick" submit="true"
                      refreshMode="partial" refreshId="dialog" execMode="partial" immediate="true">
                  </xp:eventHandler></xp:button>
              <xp:link escape="true" text="Open 3" id="link1" styleClass="btn btn-info">
              <xp:this.attrs>
                      <xp:attr name="data-toggle" value="modal"></xp:attr>
                      <xp:attr name="data-target"
                          value="#myModal">
                      </xp:attr>
                  </xp:this.attrs>                      
              </xp:link>

第一个按钮是 "normal" html 打开对话框。

按钮 2 使用 xp:button 和部分刷新。

按钮 3 xp:link 没有部分刷新。

按钮 1 和 3 显示对话框模式。按钮 2 仅显示 freeze/tinted 页面。

所以看起来部分刷新是显示拦截器,我似乎需要在显示之前更新模态中的内容。

是否有另一种方法来建立更新并从重复控件打开模式?

您可以向 运行 部分刷新的事件处理程序添加一个 onComplete 事件,并通过 javascript.

显示模式
<xp:button value="Open 2" id="button1" styleClass="btn btn-info">
    <xp:eventHandler 
        event="onclick" 
        submit="true"
        refreshMode="partial" 
        refreshId="dialog" 
        execMode="partial" 
        immediate="true"
        onComplete="$('#myModal').modal('show');">
    </xp:eventHandler>
</xp:button>

这样在部分刷新执行完成后会显示对话框。