2013-09-07 9 views
8

Jquery UI DataTableを使用していますが、これはselect(DropDown)changeイベントに格納されています。 にPageLoadそのok。 dropdown changeイベントを実行する場合、はfnDestroy()を使用してReinitializedですが、DataTableの形式が変更されます。以下は、以下のようになります。Select(DropDown)変更イベントでJquery DataTableを再初期化する

enter image description here

DropDown変更イベントの後に私のコード..

campusChangeEvent = function() { 
     $('#cmbClassCP').on('change', function() { 
     $('#ClassRegistredDataTable').dataTable().fnDestroy(); 
      GetAllClassbyCampus($('#cmbClassCP :selected').val()); 
     }); 
    }, 

GetAllClassbyCampus = function (id) { 
     var oTable = $('#ClassRegistredDataTable').dataTable({ 
      "bJQueryUI": true, 
      "sPaginationType": "full_numbers", 
      "bServerSide": true, 
      "bRetrieve": true, 
      "bDestroy": true, 
      "sAjaxSource": "/forms/Setup/Setup.aspx/GetAllClassBycampus?CampusId=" + id, 
      "fnServerData": function (sSource, aoData, fnCallback) { 
       $.ajax({ 
        "type": "GET", 
        "dataType": 'json', 
        "contentType": "application/json; charset=utf-8", 
        "url": sSource, 
        "data": aoData, 
        "success": function (data) { 
         fnCallback(data.d); 
        } 
       }); 
      }, 
      "aoColumns": [ 
         { 
          "mDataProp": "RowNo", 
          "bSearchable": false, 
          "bSortable": false, 
          "sWidth": "20" 
         }, 
         { 
          "mDataProp": "CampusName", 
          "bSearchable": false, 
          "bSortable": false, 

         }, 
         { 
          "mDataProp": "ClassName", 
          "bSearchable": true, 
          "bSortable": false 

         }, 
         { 
          "mDataProp": "Section", 
          "bSearchable": false, 
          "bSortable": false 
         }, 
         { 
          "mDataProp": "Description", 
          "bSearchable": false, 
          "bSortable": false 
         }, 
         { 
          "mData": null, 
          "bSearchable": false, 
          "bSortable": false, 
          "fnRender": function (oObj) { 
           return '<a class="edit" href="">Edit</a>'; 

          } 
         } 
      ] 
     }); 

私のフォームのようなPage Loadに見えます..

enter image description here

いずれかがありますヘルプ....

答えて

8

私はこの方法でそれを行っている。..

$('#ClassRegistredDataTable').dataTable().fnDestroy(); 

これはjqueryの中のdataTableCSSを上書きします。 dataTables.css

デフォルトでは

それはへ

table.dataTable { 
    margin: 0 auto; 
    clear: both; 
    width: 100%; 
} 

変更のように見えます。..

table.dataTable { 
    margin: 0 auto; 
    clear: both; 
    width: 100% !important; 
} 

それも、あなたはこのように、あなたのテーブルをクリアする必要が...私のため

2

試し:

$('#ClassRegistredDataTable').dataTable().fnDraw(); 

か:

//if you don't want the table reorder/resorted 
$('#ClassRegistredDataTable').dataTable().fnDraw(false); 
+0

'fnDraw()'と 'fnDestroy()'は私のページに同じ効果があります。 –

+0

GetAllClassbyCampus($( '#cmbClassCP:selected')。val())を取り除くとどうなりますか? fnDrawの後に? –

+0

私はあなたが既に初期化された後に再度データテーブルを初期化しようとすべきではないと思っています。 –

1

を働いた:

$('#ClassRegistredDataTable tbody').html(''); 
$('#ClassRegistredDataTable').dataTable().fnDestroy(); 
関連する問題