簡體   English   中英

jquery-jtable:使用ajax / jsp導出選定的行

[英]jquery-jtable: exporting selected lines using ajax/jsp

我需要在JSP環境中實現對Excel的導出功能,但僅針對jtable的選定行。

我的問題是:最好的方法是什么? 從jtable中,我選擇$('#SearchResultTable')。jtable('selectedRows')並將其發布(使用jquery $ .post())到我的servlet(使用poi生成Excel文件)中。 一切都很好,直到我不得不從servlet獲取響應為止。 事實證明,我無法將其保存到磁盤或提示瀏覽器下載它,因為ajax基本上是javascript,因此無法訪問該磁盤。

有一個更好的方法嗎? 我希望能夠命名並保存生成的文件。

這是我處理該帖子的call函數:

toolbar: {
    items: [{
        icon: 'art/excel_ico.gif',
        text: 'Esporta in Excel',
        display: 'download="Report.xls"',
        click: function() {
            return $.post("ExcelExport", {n: "Magazzino", t: $('#SelectedRowList')[0].innerHTML})
            .done(function(data) {
                alert("Data Loaded: " + data);
            });
        }
    }]
},

謝謝您的幫助,法比奧。

解決了。

我在JTable中使用了表單而不是“ toolbar:”項。 對任何可能感興趣的人:

我從JTable初始化函數中刪除了“工具欄”項。 在頁面上添加一個表單,如下所示:

<div id="formWrapper">
    <form id="exportForm" action="ExcelExport" method="post">
        <input type="hidden" value="" name="exportRows" id="exportRows">
        <input type="hidden" value="Ordini" name="dataType" id="dataType">
        <input type="submit" value="Esporta">
    </form>
</div>

使用css為表單設置樣式,使其看起來像JTable工具欄上的按鈕。

在JTable初始化中,我添加了selectionChange項,如下所示:

selectionChanged: function() {
  var $selectedRows = $('#SearchResultTable').jtable('selectedRows');
  $('input:hidden[name="exportRows"]').val("");

  $selectedRows.each(function() {
    var record = $(this).data('record');

    $('input:hidden[name="exportRows"]').val($('input:hidden[name="exportRows"]').val()
        + record.id. ... );
  });
}

因此,每當我更改JTable選擇中的內容時,exportRows的值都會更改。 該表單指向我的Servlet,然后可以將其作為Excel文件發送回數據,我可以對其進行命名和保存。

希望能幫助到你。 法比奧

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM