jsf - Is conditional rendering of components possible inside datatable without updating the entire datatable? -
jsf - Is conditional rendering of components possible inside datatable without updating the entire datatable? -
<h:datatable value="#{bean.listofrows}" var="eachrow" id="thedatatable"> <h:column> <p:outputpanel rendered="#{eachrow.visible}"> <h:selectmanycheckbox value="#{xxxx}" label="#{xxxx}"> <f:selectitems value="#{checkboxitems}" var="eachitem" itemlabel="#{eachitem.label}" itemvalue="#{eachitem.value}" /> <p:ajax event="change" update="thedatatable" /> </h:selectmanycheckbox> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> <h:selectoneradio value="#{xxxx}" label="#{xxxx}"> <f:selectitems value="#{radioitems}" var="eachitem" itemlabel="#{eachitem.label}" itemvalue="#{eachitem.value}" /> <p:ajax event="change" update="thedatatable" /> </h:selectoneradio> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> </p:outputpanel> . . . </h:column> </h:datatable>
within set of rows of info table, rows conditionally rendered depending on value alter events(processed using ajax requests) on previous row's input component. can create these rows visible without re-rendering entire info table ? ? ? using jsf 2.0.6 primefaces 2.2.1.
as suggested balusc question link utilize padding in datatable column this.
<h:datatable id="maindatatable" value="#{bean.listofrows}" var="eachrow" id="thedatatable"> <h:column> <h:panelgroup id="padding" layout="block"> <p:outputpanel rendered="#{eachrow.visible}"> <h:selectmanycheckbox value="#{xxxx}" label="#{xxxx}"> <f:selectitems value="#{checkboxitems}" var="eachitem" itemlabel="#{eachitem.label}" itemvalue="#{eachitem.value}" /> <p:ajax event="change" update="thedatatable" /> </h:selectmanycheckbox> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> <h:selectoneradio value="#{xxxx}" label="#{xxxx}"> <f:selectitems value="#{radioitems}" var="eachitem" itemlabel="#{eachitem.label}" itemvalue="#{eachitem.value}" /> <p:ajax event="change" update="thedatatable" /> </h:selectoneradio> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> </p:outputpanel> <p:outputpanel rendered="#{eachrow.visible}"> </p:outputpanel> . . . </h:panelgroup> </h:column> </h:datatable>
the datatable creates padding on every component in column whether rendered or not. upto dependent logic. if want update particular row of datatable utilize client id generated backing bean or binding component bean suggested balusc in question. client id of format maindatatable:rowindex:padding. cheers!
jsf primefaces
Comments
Post a Comment