jsf - Displaying Primefaces confirmDialog from Backing Bean -
i have primefaces datatable , when user clicks on row, display info edit in form. if user changes info in form , clicks on other row i.e if there dirty data, need popup confirmdialog show if user wants save info / discard it. confirmdialog not display when seek execute backing bean. help appreciated!
i have implemented follows:
.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> confirmdialog: <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> backing bean: public void onrowselect(selectevent event) { string actionname = on_row_select; seek { pupil selectedobj = (student)event.getobject(); if (selectedobj != null) { selectededitrec = selectedobj; } // if info changed show datachange dialog if (isdatachanged()) { setshowdatachangeddialog(true); requestcontext context = requestcontext.getcurrentinstance(); // execute javascript , show dialog context.execute("pf('datachangedlg').show();"); } } grab (exception e) { handleexception(e); } } requestcontext.getcurrentinstance().execute("pf('datachangedlg').show();"); <p:ajax event="rowselect" listener="#{transactionsetbean.onrowselect}" update=":transactionsetsform:tsentryfrmid">
works me. there must error. maybe isdatachanged false, wrong component ids in update or something.
jsf jsf-2 primefaces datatable
No comments:
Post a Comment