2016-10-24 2 views
0

私の仕事では、非常に古いテーブルがあり、jqGridに変換しようとしています。残念ながら、すべてのテーブルがjqGridの最初から再作成できるわけではないので、tableToGridを使用してjqGridのデータでテーブルを変換し、ソートやCSSスタイルなどの機能を少なくとも備えています。 しかし、私たちのテーブルでは問題が見つかりました。このテーブルは、内部テーブルのtdが、外部テーブルに追加して、外部テーブルに追加しました。結果?混乱。 だから、私の質問は:(例えば、日付がすでにHTMLに表示されているため、SubGridを使用できないなど)制限を考慮して、tableToGridに "内部"テーブルを無視するように指示する方法を知っている人はいませんか?ここで重要なのは、別のテーブルへの呼び出しを介さずに外部テーブルと内部テーブルに対してtableToGridを呼び出す方法を見つけることだと思います。jQGridで内部テーブルを無視する方法

よろしく

答えて

0

あなたは(でその内容を維持し、使用して興味を持っていないように見える

にtableToGridを指示する方法が「内側」テーブル

を無視したので、少なくとも変換操作中)。

だから、単に変換操作前にこのを挿入可能性があります

$('table table').remove(); 

もちろん、あなたが全体のコンテキストに応じて、table tableよりも正確なものを記述する必要があります。

0

あなたの問題の主な理由は、jqGridにプラグインされてtableToGridの使用量は、何年も前に作成され、ほとんど変更または維持されていなかったです。たとえば、プラグインはループ内でaddRowDataを使用します(the lineを参照)。これは非常に遅く動作します。あなたが記述問題の起源は、

jQuery(this).children('td').each(function() { 

例えばまたはちょうど

jQuery(this.cells).each(function() { 

に変更することができ、コード

jQuery('td', jQuery(this)).each(function() { 

(約hereを参照のthe lineですcellsコレクションはすべて<tr>です。this.cells[i]を使用してi番目のinnerHTMLにアクセスすることができます

tableToGridのコードの多くの部分は、そのようなグリッドをmultiselect: trueオプションを使用してグリッドに変換できるチェックボックスのグリッドの非常に特定の構造に基づいています。それはあなたが必要とするものですか?

tableToGridのコードは、2つの主要な部分から構成されています。最初の部分は、既存の<table>のデータを読み取り、項目の配列にデータを保存します。 2番目の部分は、データを使用してグリッドを作成します。既存のテーブルの構造を知っていれば、tableToGridへの置換えを非常に簡単に作成できます。それは私があなたにすることをお勧めします。

関連する問題