我有一個JSF MyFaces數據表,它包含一個元素列表和一個刪除按鈕的列。我想要做的就是在點擊刪除按鈕時彈出一個對話框,讓用戶確認或取消操作。如何在JSF中使用模態窗口確認動作?
我已經有對話框(還原爲簡單起見,用<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在加載頁面時執行,並將類別爲call-modal
的所有元素設置爲onclick
,以便它們顯示組件ID爲myModal
,這當然是模式窗口。我繼承了這種工作方式,並且寧願不改變它,但任何解決方案或想法都將有所幫助。
我可以直接在數據表中使用commandLink
,該數據表從視圖中訪問actionToPerform(element)
,但當然不會觸發模式。因此,我看到的主要問題是,如果我點擊Delete
按鈕,我怎樣才能將element
在dataTable
中迭代到模態? (我不介意解決方案是否使用Ajax)。
任何輸入都會有幫助。謝謝。
的HTML5支持,缺什麼?咦?你的代碼已經在HTML5語法中了? – BalusC
@BalucC除非我錯過了一些東西,否則我不能使用''並添加一個'data- *'HTML5屬性。 AFAIK,我不得不爲這個工作創建一個新的渲染器。這就是爲什麼我使用'' –
爲什麼你需要''而不是? –
BalusC