2016-09-02 2 views
1

私はDataTableを持っています。データサイズがウィンドウ上でエラーをスローするサイズ変更

私はそれを設定すると、私はエラーを取得していない、テーブルが正しく生成されますが、私は、ウィンドウのサイズを変更するたびに、その後、私はこのエラーを取得しています:

0x800a138f - JavaScript runtime error: Unable to get property 'style' of undefined or null reference

私は私が再現できるとは思いませんここのコードは、私はテーブルの構造が正しいことを保証することができます。

これは、私がデータテーブルを作成するために使用しているものです:

function initDataTable() { 
    if ($.fn.dataTable.isDataTable($('#grdPrincipal'))) { 
     $('#grdPrincipal').DataTable().destroy(); 
     initDataTable(); 
    } else { 
     $("#grdPrincipal") 
      .DataTable({ 
       scrollY: 210, 
       scrollX: true, 
       fixedHeader: true, 
       fixedColumns: true, 
       paging: false, 
       info: false, 
       searching: false 
      }); 
    } 
} 

私は私のasp.netのWebフォームプロジェクトでのUpdatePanelを使用していますので、私は、私がポストバックを行うたびに、このコードを実行する必要が毎回テーブルが再建されているからです。

ポストバックなどに問題はありませんが、唯一の問題はウィンドウのサイズを変更したときです。

何ができますか?

答えて

1

あなたのUpdatePanelを更新する前にこのように、データテーブルを破壊してみてください。

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    function BeginRequestHandler(sender, args) { 
     //Runs before updatePanel starts updating 
     $('#grdPrincipal').DataTable().destroy(); 
    } 

    function EndRequestHandler(sender, args) { 
     initDataTable(); 
     //Runs after updatePanel has finished updating 
    } 
    prm.add_beginRequest(BeginRequestHandler); 
    prm.add_endRequest(EndRequestHandler); 
+0

私はここに別の何かをやっていると私は私が望むようにのdataTableが作成された最初の時間は、私はウィンドウのサイズを変更できることに気づきましたしかし、updatePanelがリロードされた後、ウィンドウのサイズを変更するとこのエラーがスローされます。 updatePanelがリロードされると、テーブルは再構築され、データテーブルではなくなります。 – Phiter

+1

私はこれを持っています - > 'function pageLoad(){initDataTable(); } ' – Phiter

+0

あなたが別のイベントコールバックを必要としているようですね、"。resize() "jQueryの機能。私は私の郵便でそれを書いています、1分で見てください。 – RPichioli

関連する問題