0

私の要件は次のとおりです。

ASPX ページから、fileUpload を使用してスプレッドシートからデータをインポートし、ASP.NET テーブルを動的に生成します。テーブルの行と列の次元とデータは、ファイル自体によって設定されます。つまり、データがインポートされるまで、アプリケーションは行と列を認識しません。

私がしたいことは、動的に生成されたテーブルに jQuery DataTables プラグインを適用することです。ユーザーがページの [インポート] ボタンをクリックすると、テーブルが生成されます。

私が抱えている問題は、テーブルが使用可能になる前にテーブルをフォーマットする jscript が実行されるため、DataTable プラグインが列について不平を言うことです。エラーは次のとおりです。

プロパティ 'aoColumns' の値を取得できません: オブジェクトが null または未定義です

次のコードを Button_Click イベントに追加しようとしましたが、テーブルが読み込まれる前に発生します。

ClientScript.RegisterClientScriptBlock(Me.GetType(), "FormatTable", "FormatTable();", True)

jscriptは次のとおりです。

  function FormatTable() {
                    var oTable = $('#tblMyTable).dataTable({
                        "bJQueryUI": true,
                        "sScrollY": "300px",
                        "sScrollX": "100%",
                        "sScrollXInner": "150%",
                        "bScrollCollapse": true,
                        "bPaginate": false
                    });
                    new FixedColumns(oTable);
    };

table、thead、tr、th、tbody、tr、td を使用してテーブルが整形式であることを確認しました。テーブルがコード ビハインドから生成されると、サーバー プレースホルダー コントロールに挿入されます。

私の質問は次のとおりです。jQuery DataTables プラグインを使用してサーバー生成テーブルを正常にフォーマットするにはどうすればよいですか? 助けてくれてありがとう。

4

1 に答える 1

1

この場合、DOM の準備が整った後にコードを実行する必要があります。このため、jQuery はready関数を提供します。

FormatTable次のように、DOM の準備が整った後にのみ呼び出します。

ClientScript.RegisterClientScriptBlock(Me.GetType(), "FormatTable", 
                    @"$(document).ready(function() {FormatTable();});", True);
于 2012-08-19T06:58:22.203 に答える