我有一个 JSF MyFaces 数据表,其中包含一个元素列表和一个带有删除按钮的列。我要做的就是在单击删除按钮时弹出一个对话框,允许用户确认或取消操作。
我已经有了对话框(为简单起见,<a>
由于缺乏 HTML5 支持而减少了使用):
<div id="myModal">
<h:form>
<a data-dismiss="modal">Close</a>
<h:commandLink action="#{somethingMagicInHere?}">Confirm</h:commandLink>
</h:form>
</div>
在 dataTable 我有这样的东西(也简化了):
<h:dataTable id="myDataTable" value="#{bean.elementList}" var="element">
<h:column>
<f:facet name="header">Actions</f:facet>
<a class="call-modal">Delete</a>
</h:column>
</h:dataTable>
最后我的 ManagedBean 看起来像这样:
@ManagedBean(name = "bean")
@RequestScoped
public class ElementClassBean {
...
public String actionToPerform(ElementClass e) {
MyBusinessLogicModel.getInstance().deleteElement(e);
}
}
因此,简而言之,jQuery 在加载页面时执行,并获取所有带有 class 的元素call-modal
并为它们设置一个onclick
,以便它们显示带有 id 的组件myModal
,这当然是模态窗口。我以这种方式继承了这种工作方式,不想改变它,但任何解决方案或想法都会有所帮助。
我可以commandLink
直接在可以actionToPerform(element)
从视图访问的 dataTable 中使用 a ,但这当然不会触发模态。因此,鉴于这种结构,我看到的主要问题是,一旦单击按钮,如何将element
正在迭代的内容发送到模态?(我不介意该解决方案是否使用 Ajax)。dataTable
Delete
任何输入都会有所帮助。谢谢。