我有一个Facelets页面<h:dataTable>
.在每一行都有一个<h:selectBooleanCheckbox>
.如果选中该复选框,则应在bean中设置相应行后面的对象.
<h:selectManyCheckbox>
吗?datatable jsf multipleselection uirepeat selectbooleancheckbox
我有一个可编辑的dataTable(editMode = "cell"
).
编辑自由文本字段和列表框非常简单.但是,我无法弄清楚如何编辑复选框字段.更具体的是,当我尝试编辑复选框选择时,输出构面中的数据在更改后未实现.
<p:dataTable id="submodels" var="submodel" value="#{projectMB.submodels}"
editable="true" editMode="cell" widgetVar="cellSubmodels">
<p:column headerText="Mapping file">
<p:cellEditor>
<f:facet name="output">
<h:selectBooleanCheckbox value="#{submodel.mapping}" onclick="return false;"
style="width:96%" label="Root model" readonly="true"/>
</f:facet>
<f:facet name="input">
<h:selectBooleanCheckbox value="#{submodel.mapping}" style="width:96%"
label="Root model"/>
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
有点令人惊讶,当我将输入facet更改为inputText(并在其中输入true/false值)时,复选框正确更新:
<p:dataTable id="submodels" var="submodel" value="#{projectMB.submodels}"
editable="true" editMode="cell" widgetVar="cellSubmodels">
<p:column headerText="Mapping file">
<p:cellEditor>
<f:facet name="output">
<h:selectBooleanCheckbox value="#{submodel.mapping}" onclick="return false;"
style="width:96%" label="Root model" readonly="true"/>
</f:facet>
<f:facet name="input">
<p:inputText value="#{submodel.mapping}" style="width:96%" />
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
你能指出我做错了什么吗?我在javascript控制台和Java服务器端没有错误.
我正在使用Primefaces 4.0版
datatable tablecelleditor primefaces jsf-2 selectbooleancheckbox
我有一个包含字段的辅助bean,该字段creditCard
可以有两个字符串值y
或n
从DB填充.我想在复选框中显示这个,y
然后n
转换为boolean
.
我该如何实现它?在渲染响应时我不能使用自定义转换器作为getAsString()
返回String
,而我需要一个boolean
.
我<h:dataTable>
用来列出数据库中的数据.我们在页面中有很多记录,现在我想选择多行记录,每行都有一个复选框.我怎样才能做到这一点?
我在xhtml页面中有一个bean类和一个selectBooleanCheckbox.我希望在单击框时,应在辅助bean中设置值.
这是代码:
<h:selectBooleanCheckbox id="provisioningTargetCollector"
value="#{targetSource.provisioningTargetCollector}">
</h:selectBooleanCheckbox>
Run Code Online (Sandbox Code Playgroud)
豆类:
public boolean isProvisioningTargetCollector() {
return _provisioningTargetCollector;
}
public void setProvisioningTargetCollector(boolean provisioningTargetCollector) {
_provisioningTargetCollector = provisioningTargetCollector;
}
Run Code Online (Sandbox Code Playgroud)
但是只有在页面加载时才会调用getter和setter.如何在单击复选框时设置bean方法中的值.
我有下面的表格:
<h:form>
<h:dataTable value="#{bean.items}" var="item">
<h:column>
<h:selectBooleanCheckbox value="#{item.enabled}" valueChangeListener="#{bean.onchangeEnabled}">
<f:ajax event="change" />
</h:selectBooleanCheckbox>
</h:column>
<h:column>#{item.name}</h:column>
</h:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)
我想获得#{item}
或至少#{item.name}
在值更改侦听器方法中:
public void onchangeEnabled(ValueChangeEvent e) {
// I would like to get #{item.name} here too.
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
datatable jsf valuechangelistener jsf-2 selectbooleancheckbox