当前位置: 首页 > 知识库问答 >
问题:

如何使用JSF的h:selectBooleanCheckbox和h:dataTable来获取选中的复选框,而不提交页面内容?

景温书
2023-03-14

在我的应用程序中,我有一个h:datatable,其中包含车辆数据,每一行中都有h:selectBooleanCheckBox。我想知道支持bean中datatable datatable行中选中的复选框,而不应用任何submit按钮。这样做的想法是;当任何用户单击一个应用程序页面中的复选框时,他/她都可以很容易地看到其他页面中的选定行,因为每个页面中的数据表都包含许多车辆。因此,用户可以在任何页面中看到所选车辆并执行相关操作。

下面显示了我的JSF页面的一部分。

<rich:dataTable id="vehicleTable" var="vhcl" value="#{mainPage.vehicleList}"
binding="#{mainPage.vehicleTable}" > 
<rich:column id="col_sel" width="10px"
<h:selectBooleanCheckbox title="#{general.showOnMap}" onclick="showOnMap(this)"   id="selectedCheckBox" />
</rich:column>
<rich:column id="trackId" label="#{general.vehicleName}" >
    <f:facet name="header">
     <h:outputText value="#{general.vehicleName}" id="state_name" />
    </f:facet>
<h:outputText value="#{vhcl.vehicle.mtsTrackId}" id="vehicleId" title="#{general.vehicleId}" style="font-size:10px; color:blue;" />
    <br/>
<h:outputText value="#{vhcl.vehicle.vehiclePlate}" id="vehiclePlate" title="#{general.licencePlate}" style="font-size:10px; color:blue"/>
</rich:column>
<rich:column  id="type_col" label="#{general.vehicleType}" >
<f:facet name="header">
    <h:outputText value="#{general.vehichleType}" id="vehichleTypeLabel" />
</f:facet>
<h:graphicImage value="#{vhcl.typeImage}" height="40" width="40" align="left"/>
<h:panelGrid columns="1" align="right">
    <h:graphicImage id="statusImage" value="#{vhcl.statusImage}" title="#{vhcl.status}" height="15" width="15" />
    <h:graphicImage id="motorStatusImage" value="#{vhcl.motorStatusImage}" title="#{vhcl.motorStatus}" height="15" width="15" />
</h:panelGrid>
</rich:column>
<rich:column id="msg_col" label="#{general.lastMessageDate}" >
<f:facet name="header">
    <h:outputText value="#{general.lastMessageDate}" id="lastMsgDateLabel" />
</f:facet>
<h:outputText value="#{vhcl.messageDate}" id="lastMsgDate" /> 
<br />
<h:outputText value="Hız: " />
<h:outputText value="#{vhcl.instantSpeed}" id="lastSpeed" style="color:blue; font-weight:bold" />
<h:outputText value="km/s" />
</rich:column>
<rich:column id="addr_col" label="#{general.address}" >
<f:facet name="header">
    <h:outputText value="#{general.address}" id="addressLabel"/>
</f:facet>
<h:outputText value="#{vhcl.address}" id="addr" />
<br />
<h:outputText value="#{vhcl.location}" id="location" style="color:blue;" />
</rich:column>

共有1个答案

和光启
2023-03-14

在“Vehicle”(车辆)类中,创建一个布尔字段,并像这样为其添加getter(获取)和setter(设置)方法。

private Boolean selected;

public Boolean getSelected() {
  return selected;
}

public void setSelected(Boolean selected) {
  this.selected = selected;
}

然后将复选框绑定到该属性并添加一个

<h:selectBooleanCheckbox onclick="showOnMap(this)" value="#{vhcl.selected}">
  <a4j:support event="onchange" ajaxSingle="true"/>
</h:selectBooleanCheckbox

现在,当您选中或取消选中复选框时,值将提交给bean。然后,您随时可以找到是否像这样选择了车辆。

if(vehicle.selected != null && vehicle.selected) {
  //vehicle is selected
}

注意:您的表格应该在表单中。

 类似资料:
  • 问题内容: 我有6个选项,我想获取选中的值以将它们存储在第二页的变量中。我该怎么做呢? 和页面: 如果我删除,我会打开颜色,当我这样做时会收到一条通知,说: 数组到字符串的转换 我想要的是选中复选框的值,因此我可以将其存储在变量中。 问题答案: 我最喜欢的一种好方法,我敢肯定,很多人都会利用它来输出您选择的每种颜色,并在屏幕上彼此下方显示。 在使用复选框时,您别无选择,只能使用,这就是为什么只从数

  • 我正在尝试一个Woocommerce票证插件。默认情况下,该插件会显示一个表,其中包含多个票证变体作为产品,并在下面显示一个文本字段作为其数量和一个提交按钮,以将产品添加到购物车中。 我想用单选按钮或复选框替换这个文本字段,这样用户就可以选择一种类型的票证,然后点击提交按钮将其中的一部分添加到购物车中。 我的想法是在foreach循环中创建一个复选框或单选按钮,该复选框或单选按钮的值为quanti

  • 问题内容: 我有一组具有相同名称的输入复选框,并且我想确定已使用JavaScript选中了哪些复选框,如何实现呢?我只知道如何获取所有复选框,如下所示: 问题答案: 一个简单的for循环,用于测试属性并将选中的属性附加到单独的数组中。从那里,如果需要,您可以进一步处理数组。

  • 问题内容: 我不知道如何传递复选框的选定值。任何帮助或建议对我都会有很大帮助。 到目前为止,这是我的代码,我一直无法传递复选框的值 问题答案: 试试这个。 HTML代码 loadmore.php代码 在loadmore.php中输出 而已。 干杯。

  • 所以我有这样的代码: 我只需要Javascript来获取当前选中的任何复选框的值。 编辑:要添加,只有一个复选框。

  • 我无法获取“remember-me”复选框值(不存在获取400个必需的布尔参数“remember”) HTML表单