gpt4 book ai didi

jsf - 显示来自 Backing Bean 的 Primefaces confirmDialog

转载 作者:行者123 更新时间:2023-12-04 14:13:52 25 4
gpt4 key购买 nike

我有一个 Primefaces 数据表,当用户单击一行时,我会在表单中显示要编辑的数据。
如果用户更改表单中的数据并单击任何其他行,即如果有脏数据,我需要弹出一个 confirmDialog 以显示用户是否要保存数据/丢弃数据。
当我尝试从支持 bean 执行它时,confirmDialog 不显示。
任何帮助表示赞赏!

我已经实现如下:

.xhtml:

<p:dataTable id="tsTableId" value="#{transactionSetBean.studentList}" var="tsRow"
selectionMode="single" selection="#{transactionSetBean.selectedEditRec}" rowKey="#{tsRow.id}" scrollRows="10">
<p:ajax event="rowSelect" listener="#{transactionSetBean.onRowSelect}" update=":transactionSetsForm:tsEntryFrmId">
</p:ajax>
..
</p:dataTable>

确认对话框:
<p:confirmDialog widgetVar="dataChangeDlg"  message="Save changes Or Cancel">                                
<p:commandButton value="Save Changes" oncomplete="PF('dataChangeDlg').hide();"
update=":transactionSetsForm:messages :transactionSetsForm:tsEntryFrmId"
action="#{transactionSetBean.updateRecord}" />
<p:commandButton value="Cancel" onclick="PF('dataChangeDlg').hide();"

</p:confirmDialog>

支持 bean :
public void onRowSelect(SelectEvent event)
{
String actionName = ON_ROW_SELECT;
try
{
Student selectedObj = (Student)event.getObject();
if (selectedObj != null)
{
selectedEditRec = selectedObj;
}
// if data is changed then show the dataChange dialog
if (isDataChanged())
{
setShowDataChangedDialog(true);
RequestContext context = RequestContext.getCurrentInstance();
// execute javascript and show dialog
context.execute("PF('dataChangeDlg').show();");
}

}
catch (Exception e)
{
handleException(e);
}
}

最佳答案

RequestContext.getCurrentInstance().execute("PF('dataChangeDlg').show();");

<p:ajax event="rowSelect" listener="#{transactionSetBean.onRowSelect}" update=":transactionSetsForm:tsEntryFrmId">

为我工作。
一定有另一个错误。也许 isDataChanged 是错误的,更新中的组件 ID 错误等等。

关于jsf - 显示来自 Backing Bean 的 Primefaces confirmDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24307969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com