displaytag export options banner - 放置在表格顶部

时间:2009-06-03 00:49:02

标签: jsp-tags displaytag

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

谢谢, 罗伊

4 个答案:

答案 0 :(得分: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);
    }
});

结果:

enter image description here

答案 1 :(得分:0)

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

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

在我们使用的桌子周围,框架外部和排水沟只是一些分区。

在我们定义的displaytag.properties中:

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

这可能不是整个故事,但我能看到的是在我们的项目中这样做。希望这有点帮助。

答案 2 :(得分:0)

请添加以下代码:

$(function()
  {

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

});

答案 3 :(得分:0)

我知道这是10岁,但是以防万一有人要寻找一个简单而可行的答案,以下对我有用。我注意到displaytag将所有内容都放在了TBODY中,所以我决定尝试将Export包装在THEAD中,并确保它可以正常工作。

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

export.banner=<thead><tr><td><div class="exportlinks">Download: {0}</div></td></tr></thead>