首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ice:selectManyCheckbox添加到ice:dataTable?

如何将ice:selectManyCheckbox添加到ice:dataTable?
EN

Stack Overflow用户
提问于 2011-11-22 16:46:36
回答 1查看 2.5K关注 0票数 0

我有一个<ice:dataTable>,我想在每一行中添加一个复选框。我试图添加一个<ice:selectManyCheckbox>,但是它显示了一个空列,并且没有出现复选框。

代码语言:javascript
复制
<ice:selectManyCheckbox id="customTransChbx" partialSubmit="true">
    <f:selectItems id="SlctLangItms" value="#{employee.s}" />
</ice:selectManyCheckbox>

<ice:dataTable id="employeedatatable" value="#{employee.model}" var="emp" rows="5">
    <ice:column>
        <ice:checkbox for="customTransChbx" index="#{emp.id}" rendered="true" />
    </ice:column>
</ice:dataTable>

如何通过<ice:dataTable>中的复选框选择多行

更新:我还用Map尝试了<ice:selectBooleanCheckbox>

代码语言:javascript
复制
public class Employee {

    private Map<Long, Boolean> checked = new HashMap<Long, Boolean>();

    public void preRender(ComponentSystemEvent event) throws Exception {
        List<Employee> list = employeeService.getEmployees();

        for (Employee employee : list)
            checked.put(employee.getId(), false);
        }
    }

使用

代码语言:javascript
复制
<ice:dataTable id="employeedatatable" value="#{employee.model}" var="emp" rows="5">
    <ice:column>
        <ice:selectBooleanCheckbox value="#{employee.checked[emp.id]}" />
    </ice:column>
</ice:dataTable>

当试图在操作方法中获取选中的列表时,映射中的所有值都是false,甚至是选定的值。为什么选中的值没有放在Map中?

UPDATE2:我尝试了旧的普通html方式,如下所示:

  • 将复选框定义为输入:

<input type="checkbox" name="toDelete" value="#{emp.id}" />

  • getting支持bean方法中的检查值,如下所示:

HttpServletRequest request = (HttpServletRequest) FacesContext .getCurrentInstance().getExternalContext().getRequest(); String[] checkedValues = request.getParameterValues("toDelete");

问题是checkedValues数组总是空的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-24 12:29:21

请确保datatable按钮处于相同的表单中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8230451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档