【问题标题】:Dandelion Datatables checkbox on table header表头上的蒲公英数据表复选框
【发布时间】:2015-05-17 06:15:30
【问题描述】:

我希望有一列用于复选框以选择多行。我设法在每一行上创建了一个复选框,但我还希望在标签上有一个复选框,以便当我选中标题上的复选框时它会自动选择列上的所有复选框。我怎样才能做到这一点?

PS: 我用的是 JSP

<form id="form">
    <div style="text-align:right; padding-bottom:1em;">
        <button type="submit">Submit form</button>
     </div>
    <datatables:table id="owners" data="${selections}" row="owner" theme="bootstrap2" 
                      cssClass="table table-striped" pageable="false" info="false" export="pdf">
        <datatables:column title="Name" cssStyle="width: 150px;" display="html">
            <spring:url value="/owners/{ownerId}.html" var="ownerUrl">
                <spring:param name="ownerId" value="${owner.id}"/>
            </spring:url>
            <a href="${fn:escapeXml(ownerUrl)}"><c:out value="${owner.firstName} ${owner.lastName}"/></a>
        </datatables:column>
        <datatables:column title="Name" display="pdf">
            <c:out value="${owner.firstName} ${owner.lastName}"/>
        </datatables:column>
        <datatables:column title="Address" property="address" cssStyle="width: 200px;"/>
        <datatables:column title="City" property="city"/>
        <datatables:column title="Telephone" property="telephone"/>
        <datatables:column title="Pets" cssStyle="width: 100px;">
            <c:forEach var="pet" items="${owner.pets}">
                <c:out value="${pet.name}"/>
            </c:forEach>
        </datatables:column>
        <datatables:column sortable="false" filterable="false">
            <input type="checkbox" name="check${owner.id}" value="${owner.id}">
        </datatables:column>
        <datatables:export type="pdf" cssClass="btn" cssStyle="height: 25px;" />
    </datatables:table>
</form>

【问题讨论】:

    标签: javascript jsp checkbox jquery-datatables dandelion


    【解决方案1】:

    您可以使用&lt;datatables:columnHead&gt; 标签自定义标题列。

    <form id="form">
        <div style="text-align:right; padding-bottom:1em;">
            <button type="submit">Submit form</button>
         </div>
        <datatables:table id="owners" data="${selections}" row="owner" theme="bootstrap2" 
                          cssClass="table table-striped" pageable="false" info="false" export="pdf">
            ...
            <datatables:column sortable="false" filterable="false">
                <datatables:columnHead>
                    <input type="checkbox" onclick="$('#owners').find(':checkbox').attr('checked', this.checked);" />
                </datatables:columnHead>
                <input type="checkbox" name="check${owner.id}" value="${owner.id}">
            </datatables:column>
            ...
        </datatables:table>
    </form>
    

    &lt;datatables:columnHead&gt; 标记内的所有内容都将放在相应的列标题中。

    参考:http://dandelion.github.io/datatables/docs/ref/jsp/columnhead.html

    【讨论】:

    • 我遇到此错误:“根据 TLD,标签 columnHead 的属性 uid 无效”
    • 您使用的是什么版本的蒲公英数据表?
    • 这种行为随着早期版本的发展而演变。我更新了答案以反映这些变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    相关资源
    最近更新 更多