2017-12-27 20 views
0

エクスポートと表示ページングのボタン付きのDataGridを使用しています。Ajax BeginFormとButtonsを使用したJquery DataTableプラグイン

このようなプラグインのロード:

var table = $('#resultsTable').DataTable({ dom: 'Bfrtip', initComplete: function (settings, json) { debugger; $('#resultsTable').DataTable().buttons().container().appendTo('#UserHead'); },
lengthMenu: [ [10, 25, 50, -1], ['10 rows', '25 rows', '50 rows', 'Show all'] ], buttons: [ 'pageLength', { extend: 'collection', text: 'Export', buttons: [ 'copy', 'excel', 'csv', 'pdf', 'print' ] }] });

ページが最初に起動したときにこれが正常に動作します。私はAjax.BeginFormを持っています。そこでは、データセットでデータテーブルを更新します。上記のコードでは、ボタンは消えますが、残りのデータテーブルプラグインは正常に動作します。

Ajaxコード:私はONSUCCESSメソッドで次のコードで戻ってデータグリッドで来て、ボタンを取得しようとし

@using (Ajax.BeginForm(Model.ReportName, "Report", new AjaxOptions {
OnSuccess = "OnSuccess", UpdateTargetId = "resultsDiv", InsertionMode = InsertionMode.Replace, HttpMethod = "POST" }, new { @class = "form-horizontal" } )) { ... }
:これは中に例外が発生

var table = $('#resultsTable').DataTable({ dom: 'Bfrtip', "initComplete": function (settings, json) { $('#resultsTable').DataTable().buttons().container().appendTo('#UserHead'); table.buttons().container().appendTo('#UserHead'); }, lengthMenu: [ [10, 25, 50, -1], ['10 rows', '25 rows', '50 rows', 'Show all'] ], buttons: ['pageLength', { extend: 'collection', text: 'Export', buttons: [ 'copy', 'excel', 'csv', 'pdf', 'print' ] }] });

INITCOMPLETE機能:JavaScriptのランタイムエラー:Savは:オブジェクトはプロパティまたはメソッド「ボタン」をサポートしていません

私はこの問題を解決するには、次のを試してみましたe最初のロードからのテーブル変数、およびDataTableへのOnSuccess呼び出しの前にdestroyを呼び出します。これは例外となります。

私の質問は、私はAjax呼び出し(秒)後に戻って表示するには、私の輸出ボタンを取得するために何をすべきでしょうか?

答えて

0

問題は、拡張子なしのjqueryの再初期化しました。初心者の幸運、ケースは閉まった。

関連する問題