如何使用引导表导出扩展

Posted

技术标签:

【中文标题】如何使用引导表导出扩展【英文标题】:how to use bootstrap-table Export extension 【发布时间】:2017-05-08 06:36:40 【问题描述】:

我有一张我希望能够导出的表格。我在http://bootstrap-table.wenzhixin.net.cn/ 偶然发现了 bootstrap-table 并认为它很棒,所以我开始使用一些东西。分页,搜索,其他工作,太棒了!但我不知道如何让该死的导出扩展工作!我在这方面已经很久了,搜索论坛、博客和 github 上的文档。无论如何,这就是我所在的位置。

我跑了

npm install bootstrap-table

然后我在我的标题中添加了行,并从这个示例中向我的正文添加了一个脚本:http://issues.wenzhixin.net.cn/bootstrap-table/#extensions/export.html 现在我的 index.html.erb 看起来像这样:

<head>
<meta charset="utf-8">
<link rel="stylesheet" href="../assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../assets/bootstrap-table/src/bootstrap-table.css">
<link rel="stylesheet" href="../assets/examples.css">
<script src="../assets/jquery.min.js"></script>
<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
<script src="../assets/bootstrap-table/src/bootstrap-table.js"></script>
<script src="../assets/bootstrap-table/src/extensions/export/bootstrap-table-export.js"></script>
<script src="//rawgit.com/hhurz/tableExport.jquery.plugin/master/tableExport.js"></script>
<script src="../ga.js"></script>
</head>
<body>


<div class="container">

    <div id="toolbar">
        <select class="form-control">
            <option value="">Export Basic</option>
            <option value="all">Export All</option>
            <option value="selected">Export Selected</option>
        </select>
    </div>
<div class="booyah-box">
<table id="table" 
       data-toggle="table"
       data-show-export="true"
       data-pagination="true"
       data-click-to-select="true"
       data-toolbar="#toolbar"
       data-url="../json/data1.json"
       data-page-list="[10, 25, 50, 100, ALL]"
       data-search="true"
       data-show-pagination-switch="true"
       data-show-columns="true"
       data-minimum-count-columns="2"
>

<thead>
  <tr>
    <th data-field="state" data-checkbox="true">Select</th>
    <th data-field="Project ID">Project ID</th>
    <th data-field="Status">Status</th>
    <th data-field="Project Type">Project Type</th>
    <th data-field="Marker Strategy">Marker Strategy</th>
    <th data-field="Traits">Traits</th>
    <th data-field="Line">Line</th>
    <th data-field="Line Origin">Line Origin</th>
    <th data-field="Market Region">Market Region</th>
    <th data-field="Governance Qualifier">Governance Qualifier</th>
    <th data-field="New Start Year">New Start Year</th>
    <th data-field="Initial Version Test Year">Initial Version Test Year</th>
    <th data-field="Estimated Version Test Year">Estimated Version Test Year</th>
    <th data-field="Last Location">Last Location</th>
    <th data-field="Trait Code">Trait Code</th>
    <th data-field="CMS Subtype/Type">CMS Subtype/Type</th>
    <th data-field="NEIS">NEIS</th>
    <th data-field="Root ID1">Root ID1</th>
    <th data-field="Root ID2">Root ID2</th>
  </tr>
</thead>


<tbody>
    <% @tiprojects.each do |x| %>
      <tr>
        <td></td>
        <td><%= x.pidtc %></td>
        <td><%= x.status %></td>
        <td><%= x.protype %></td>
        <td><%= x.marker_strategy %></td>
        <td><%= x.traits.upcase %></td>
        <td><%= x.line %></td>
        <td><%= x.origin %></td>
        <td><%= x.market_region.upcase %></td>
        <td><%= x.governance_qualifier %></td>
        <td><%= x.new_start_year %></td>
        <% if x.initial_vt_year == 9999 %>
        <td>Not Applicable</td>
        <% else %>
        <td><%= x.initial_vt_year %></td>
        <% end %>
        <td><%= x.estimated_vt_year %></td>
        <td>NA</td>
        <td><%= x.trait_code %></td>
        <td><%= x.cms_subtype %></td>
        <td><%= x.neis %></td>
        <td><%= x.root_pidtc1 %></td>
        <td><%= x.root_pidtc2 %></td>
      <% end %></tr>
    </tbody>
  </table>
<br />
<% if current_user.admin? %>
<%= link_to "Download Template Upload", download_csv_path %>
<br />
<%= form_tag import_ti_projects_path, multipart: true do %>
  <%= file_field_tag :file %><br />
  <%= submit_tag "Upload New Projects" %>
<% end %>
<% end %>
</div>
<script>
var $table = $('#table');
$(function () 
    $('#toolbar').find('select').change(function () 
        $table.bootstrapTable('destroy').bootstrapTable(
            exportDataType: $(this).val()
            showExport: 'true'

        );
    );
)

</script>

</body>

【问题讨论】:

实际发生了什么?是导出菜单没有显示,还是...? 【参考方案1】:

我刚刚做了一个 jsfiddle 来查看一些与导出有关的问题。 这可能会对您有所帮助。 jsfiddle。

        <div id="toolbar">
  <select class="form-control">
    <option value="">Export Basic</option>
    <option value="all">Export All</option>
    <option value="selected">Export Selected</option>
  </select>
</div>
<table id="table"
       data-toggle="table"
       data-toolbar="#toolbar"
       data-show-export="true"
       data-pagination="true"
       data-maintain-selected="true"
       data-page-size="5"
       data-page-list="[5, 25, 50, 100, ALL]"
       data-url="/gh/get/response.json/wenzhixin/bootstrap-table/tree/master/docs/data/data2/"
       data-export-options='
         "fileName": "test", 
         "ignoreColumn": ["state"]
       '
       >
    <thead>
    <tr>
        <th data-field="state" data-checkbox="true"></th>
        <th data-field="id">ID</th>
        <th data-field="name">Name</th>
        <th data-field="price">Price</th>
    </tr>
    </thead>
</table>

我的有点不同,我拥有的一件事是 refreshOptions 而不是 $table.bootstrapTable('destroy').bootstrapTable(

中的 destroy

【讨论】:

在我的情况下,除了 exportDataType 选项外一切正常。在更改工具栏选择框的值时,它不会刷新或更改选项设置。我在所有情况下都导出了所有行(即在 basic,all & selected 中)。可能是什么问题。 我尝试使用 refreshOptions 并销毁两者,但它不起作用

以上是关于如何使用引导表导出扩展的主要内容,如果未能解决你的问题,请参考以下文章

在引导表中如何隐藏/排除导出列

在引导表中如何使用 jQuery 更改默认按钮图标

如何在引导模式中显示导出按钮?

Twitter引导表分页

如何在单击引导模式时获取引导表行值

引导表如何隐藏,当使用 javascript 切换可见时,它无法正确显示