0

我正在使用 displaytag 标签库,到目前为止,它的效果非常好。但是,我没有看到将导出横幅放在表格顶部而不是底部的简单选项或方法。如何实现?

谢谢,罗伊

4

4 回答 4

1

我和你有同样的问题。我使用 jquery 解决了这样的问题:

我的 displaytag.properties :

export.banner=<div id="export" class="exportlinks">Exporter : {0}</div>

我在 JSP 中使用 DisplayTag 创建的表:

<div id="datagrid">
    <div class="datagrid">
        <display:table name="sessionScope.resultats" sort="list" defaultsort="2" pagesize="<%=nombreLignes %>" export="true">
            <display:column property="code" title="<%=codeLabel %>" sortable="true" href="javascript:edition(document.forms[0], '#')" paramId="code" paramProperty="code" style="width:20%;" />
            <display:column property="nom" title="<%=nomLabel %>" sortable="true" href="javascript:edition(document.forms[0], '#')" paramId="code" paramProperty="code" style="width:80%;" />
            <display:setProperty name="export.pdf" value="true" />
            <display:setProperty name="export.csv.filename" value="${nomExport }.csv"/>
            <display:setProperty name="export.pdf.filename" value="${nomExport }.pdf"/>
        </display:table>
    </div>
</div>

jquery 中的一个函数:

$(function()
{
    var export1 = document.getElementById('export');
    if(export1 != null)
    {
        // 2 duplications
        var export2 = export1.cloneNode(true);
        var export3 = export1.cloneNode(true);
        var datagrid = document.getElementById('datagrid');

        // Placement on top 
        datagrid.insertBefore(export2, datagrid.firstChild);

        // Placement on bottom
        datagrid.parentNode.insertBefore(export3, datagrid.nextSibling);

        // Delete node generated by DisplayTag
        export1.parentNode.removeChild(export1);
    }
});

结果:

在此处输入图像描述

于 2013-08-14T09:50:12.933 回答
1

请添加以下代码:

$(function()
  {

  // Placement on top.#row is display tag id
  $( ".exportlinks" ).insertBefore( "#row" );

});
于 2017-08-21T09:15:24.163 回答
0

我们已经能够使用一些针对“exportTypes”id 的 css 将导出菜单放在顶部。我不是在我们团队中做这件事的前端人员,所以可能还有更多,但看起来你可以做类似的事情:

div.framed-outer.guttered #exportTypes {
    *top: -10px;
}

frame-outer 和 guttered 只是我们使用的桌子周围的一些 div id。

在我们定义的 displaytag.properties 中:

export.banner=<div id="exportTypes"><span class="label">Export: </span>{0}</div>

同样,这可能不是故事的全部,但这就是我可以看到在我们的项目中可以做到的。希望这个对你有帮助。

于 2010-05-07T22:14:45.437 回答
0

我知道这已经 10 年了,但以防万一有人去寻找一个简单且有效的答案,以下对我有用。我注意到 displaytag 将所有内容都放在了 TBODY 中,所以我决定尝试将 Export 包装在 THEAD 中,果然它起作用了。

我在 displaytag.properties 文件中放置了以下内容:

export.banner=<thead><tr><td><div class="exportlinks">Download: {0}</div></td></tr></thead>
于 2020-11-25T20:23:02.100 回答