Primefaces SelectBooleanCheckbox 在提交表单时未被选中
Primefaces SelectBooleanCheckbox gets unchecked on form submission
我是这个网站的新手 我的问题与 primefaces 中的 SelectBooleanCheckbox 有关。
每当我提交表单时,该复选框都会被取消选中。
我正在使用动态标签视图。
这是我的 xhtml 代码:-
<h:form id="form" >
<p:panel id="tagsPanel" >
<p:tabView id="tabView" style="background-color:transparent;background-image:none;" var="tabKey" value="#{MBean.Names}"
dynamic="true" >
<p:dataGrid var="appSettingsList" value="#{appSettingsMBean.tabData[tabKey]}" columns="1" styleClass="plainDataGrid">
<h:panelGrid columns="2" border="0" cellspacing="0" cellpadding="0" columnClasses="JspContent12 ,JspContent22" width="100%" >
<p:column escape="false" >
<p:selectBooleanCheckbox value="#{appSettingsList.resultValues.checkboxValue}" style="float:left" id="checkBoxValue"
rendered="#{appSettingsList.currentValues != null and appSettingsList.currentValues.size() > 0 and
appSettingsList.displayType.equalsIgnoreCase('single') and appSettingsList.dataType.equalsIgnoreCase('boolean')}">
</p:selectBooleanCheckbox>
</p:column>
</h:panelGrid>
</p:dataGrid>
</p:panel>
<p:panel border="0" id="buttonRow" style="text-align:center;border-width:0;border-style:none;background-image:none;" >
<p:commandButton value="Save" id="save" actionListener="#{MBean.saveSettings()}" ajax="false" style="width:130px" />
</p:panel>
</h:form>
更改选项卡并单击保存按钮时,复选框保持选中状态
但是,当只点击保存按钮时,它会被取消选中
任何帮助将不胜感激...
这里,
<p:commandButton ... ajax="false" />
Ajax 已关闭。因此,在提交表单后会执行 整页刷新 。未选中该复选框表明 bean 没有正确保持其状态,或者您正在 getter 方法中执行业务逻辑,这导致它每次都 return 一个全新的模型而不是持有提交值的那个。
您有 2 个选择:
只需使用ajax。 IE。摆脱 ajax="false"
。如果您打算在提交时更新视图的某些部分,则只需相应地指定 update
属性即可。
确保您的 bean 不会与状态或 getters 混淆。
我是这个网站的新手 我的问题与 primefaces 中的 SelectBooleanCheckbox 有关。 每当我提交表单时,该复选框都会被取消选中。 我正在使用动态标签视图。
这是我的 xhtml 代码:-
<h:form id="form" >
<p:panel id="tagsPanel" >
<p:tabView id="tabView" style="background-color:transparent;background-image:none;" var="tabKey" value="#{MBean.Names}"
dynamic="true" >
<p:dataGrid var="appSettingsList" value="#{appSettingsMBean.tabData[tabKey]}" columns="1" styleClass="plainDataGrid">
<h:panelGrid columns="2" border="0" cellspacing="0" cellpadding="0" columnClasses="JspContent12 ,JspContent22" width="100%" >
<p:column escape="false" >
<p:selectBooleanCheckbox value="#{appSettingsList.resultValues.checkboxValue}" style="float:left" id="checkBoxValue"
rendered="#{appSettingsList.currentValues != null and appSettingsList.currentValues.size() > 0 and
appSettingsList.displayType.equalsIgnoreCase('single') and appSettingsList.dataType.equalsIgnoreCase('boolean')}">
</p:selectBooleanCheckbox>
</p:column>
</h:panelGrid>
</p:dataGrid>
</p:panel>
<p:panel border="0" id="buttonRow" style="text-align:center;border-width:0;border-style:none;background-image:none;" >
<p:commandButton value="Save" id="save" actionListener="#{MBean.saveSettings()}" ajax="false" style="width:130px" />
</p:panel>
</h:form>
更改选项卡并单击保存按钮时,复选框保持选中状态
但是,当只点击保存按钮时,它会被取消选中
任何帮助将不胜感激...
这里,
<p:commandButton ... ajax="false" />
Ajax 已关闭。因此,在提交表单后会执行 整页刷新 。未选中该复选框表明 bean 没有正确保持其状态,或者您正在 getter 方法中执行业务逻辑,这导致它每次都 return 一个全新的模型而不是持有提交值的那个。
您有 2 个选择:
只需使用ajax。 IE。摆脱
ajax="false"
。如果您打算在提交时更新视图的某些部分,则只需相应地指定update
属性即可。确保您的 bean 不会与状态或 getters 混淆。