显示标签导出选项横幅 - 放置在表格顶部

发布于 2024-07-24 05:59:00 字数 110 浏览 3 评论 0原文

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

谢谢, 罗伊

I'm using the displaytag tag library, and it's worked amazingly so far. However, i don't see a simple option or way to put the export banner at the top of the table instead of the bottom. How can this be accomplished?

Thanks,
Roy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

橘味果▽酱 2024-07-31 05:59:00

我和你有同样的问题。
我使用 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);
    }
});

结果:

在此处输入图像描述

I had the same problem as you.
I solved using jquery like this :

My displaytag.properties :

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

My table created with DisplayTag in my JSP :

<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>

A function in 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);
    }
});

And the result :

enter image description here

秋意浓 2024-07-31 05:59:00

请添加以下代码:

$(function()
  {

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

});

Please add below code :

$(function()
  {

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

});
殊姿 2024-07-31 05:59:00

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

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

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

在 displaytag.properties 中,我们定义了:

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

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

We've been able to place the export menu at the top using some css against 'exportTypes' id. I'm not the Front End guy that did it in our team, so there might be more to it, but it looks like you can do something like:

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

Where framed-outer and guttered are just some div ids around the table we use.

In the displaytag.properties we've defined:

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

Again that may not be the whole story but that's what I can see that'd do it in our project. Hope this helps a bit.

爱你不解释 2024-07-31 05:59:00

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

我将以下内容放入 displaytag.properties 文件中:

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

I know this is 10 years old, but just in case someone goes looking for a simple and working answer the following worked for me. I noticed that displaytag placed everything in the TBODY, so I decided to try and wrap the Export in THEAD and sure enough it worked.

I placed the following in the displaytag.properties file:

export.banner=<thead><tr><td><div class="exportlinks">Download: {0}</div></td></tr></thead>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文