2017-12-27 3 views
0

내보내기 및 표시 페이지 단추가있는 DataGrid를 사용하고 있습니다. 이 같은Ajax BeginForm 및 단추가있는 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을 가지고 있는데, 여기에서 데이터 셋으로 데이터 테이블을 새로 고칩니다. 위의 코드에서 버튼은 사라지지만 나머지 데이터 테이블 플러그인은 정상적으로 작동합니다.

아약스 코드 : 나는 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 첫 번째로드의 테이블 변수와 DataTable에 대한 OnSuccess 호출 전에 destroy를 호출합니다. 예외가 발생합니다.

제 질문은 Ajax 호출 후에 내 보내기 버튼을 표시하려면 어떻게해야합니까?

답변

0

문제점은 확장자가없는 jquery를 다시 초기화하는 것이 었습니다. 초보자 행운, 케이스 폐쇄.