2017-09-15 20 views
0

initCompleteイベントでjquery datatableを再初期化する方法。 私はinitCompleteで1つのajax呼び出しを追加して、データテーブルのデータを置き換えたいのですが、どうすればいいですか?initCompleteでjquery datatableを再初期化する方法は?

ここに私のコードです。

$scope.tbOptionsrejectionreport = { 
    data: [], 
    bAutoWidth: false,  
    sAjaxSource: 'api/api.php?type=get_rejectionreport&status=default&managerId='+managerid+'&isAdmin='+Adminuser, 
    initComplete: function() 
    { 

     $("#rejectionreportlist").click(function(){  
     $('#example_rejectionreport').DataTable().clear().destroy(); 
      var rejection_date = $("#rejectiondate").val(); 

      $http.post(
      'api/api.php?type=get_rejectionreport&rejectiondate='+rejection_date+'&managerId='+managerid+'&isAdmin='+Adminuser, 
      { 

      }) 
     .then(function(answer) { 
      //$("#example_rejectionreport").dataTable().fnDestroy(); 
      $("#example_rejectionreport").dataTable({ 
       data: [],   
       bAutoWidth: false , 
       aoColumns : [ 
       { 
        sWidth: "1%", 
        bSortable: true,           
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[0]; 

         return tbAction; 
        } 
       }, 
       { 
        sWidth: "1%",     
        bSortable: true, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[1]; 

         return tbAction; 
        } 
       }, 

       { 
        sWidth: "5%",     
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[2]; 

         return tbAction; 
        } 
       }, 
       { 
        sWidth: "3%",    
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[3]; 

         return tbAction; 
        } 
       }, 
       { 
        sWidth: "3%",     
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[4]; 

         return tbAction; 
        } 

       }, 
       { 
        sWidth: "3%",     
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[5]; 

         return tbAction; 
        } 

       }, 
       { 
        sWidth: "3%",     
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[6]; 

         return tbAction; 
        } 

       }, 
       { 
        sWidth: "3%",    
        bSortable: true, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[12]; 

         return tbAction; 
        } 

       },  
       ], 

       createdRow: function(row, data, dataIndex) {     
        $compile(row)($scope) 
       } 
      }); 
      /*var table = $("#example_rejectionreport").DataTable(); 
       console.log(answer.data.aaData); 

       $scope.rejectionlist= answer.data.aaData;*/ 
      }); 
     }); 

    }, 
    aoColumns: [   
     { 
      sWidth: "1%", 
      bSortable: true,           
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[0]; 

       return tbAction; 
      } 
     }, 
     { 
      sWidth: "1%",     
      bSortable: true, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[1]; 

       return tbAction; 
      } 
     }, 

     { 
      sWidth: "5%",     
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[2]; 

       return tbAction; 
      } 
     }, 
     { 
      sWidth: "3%",    
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[3]; 

       return tbAction; 
      } 
     }, 
     { 
      sWidth: "3%",     
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[4]; 

       return tbAction; 
      } 

     }, 
     { 
      sWidth: "3%",     
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[5]; 

       return tbAction; 
      } 

     }, 
     { 
      sWidth: "3%",     
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[6]; 

       return tbAction; 
      } 

     }, 
     { 
      sWidth: "3%",    
      bSortable: true, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[12]; 

       return tbAction; 
      } 

     },    

    ], 
    createdRow: function(row, data, dataIndex) {     
     $compile(row)($scope) 
    } 
    }; 
+0

を見つけました。これは意味をなさない私の答えです。あなたはテーブルをロードしようとしているのですが、ユーザがそれを見る前に自動的にリロードしますか?あなたが達成しようとしていることは私には分かりません。 – Bindrid

+0

がロードされていますが、データのロードが可能ですが、ボタンをクリックすると、ajaxコールが追加され、次にデータテーブルのデータを変更したいのですが、どうすればいいですか? –

答えて

0

これは最終的に私はそれを

var Adminuser = $scope.isAdmin; 
     var managerid = $scope.userID; 
     $scope.tbOptionsrejectionreport = { 
     data: [], 
     bAutoWidth: false,  
     sAjaxSource: 'api/api.php?type=get_rejectionreport&status=default&managerId='+managerid+'&isAdmin='+Adminuser, 
     initComplete: function() 
     { 

      $("#rejectionreportlist").click(function(){  
      $('#example_rejectionreport').DataTable().clear().destroy(); 
       var rejection_date = $("#rejectiondate").val(); 

       $http.post(
       'api/api.php?type=get_rejectionreport&rejectiondate='+rejection_date+'&managerId='+managerid+'&isAdmin='+Adminuser, 
       { 

       }) 
      .then(function(answer) { 
       var data = answer.data.aaData; 

       var table = $('#example_rejectionreport').DataTable({ 
        destroy: true, 
        bLengthChange: false, 
        paging: true 
       }); 

       $.each(data, function(i, item) { 
        //console.log("inserting", item); 
        table.row.add([ 
        item['0'], 
        item['1'], 
        item['2'], 
        item['3'], 
        item['4'], 
        item['5'], 
        item['6'], 
        item['12'], 
        ]).draw(); 
       });  

       }); 
      }); 

     }, 
     aoColumns: [   
      { 
       sWidth: "1%", 
       bSortable: true,           
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[0]; 

        return tbAction; 
       } 
      }, 
      { 
       sWidth: "1%",     
       bSortable: true, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[1]; 

        return tbAction; 
       } 
      }, 

      { 
       sWidth: "5%",     
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[2]; 

        return tbAction; 
       } 
      }, 
      { 
       sWidth: "3%",    
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[3]; 

        return tbAction; 
       } 
      }, 
      { 
       sWidth: "3%",     
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[4]; 

        return tbAction; 
       } 

      }, 
      { 
       sWidth: "3%",     
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[5]; 

        return tbAction; 
       } 

      }, 
      { 
       sWidth: "3%",     
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[6]; 

        return tbAction; 
       } 

      }, 
      { 
       sWidth: "3%",    
       bSortable: true, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[12]; 

        return tbAction; 
       } 

      },    

     ], 
     createdRow: function(row, data, dataIndex) {     
      $compile(row)($scope) 
     } 
     }; 
関連する問題