0

私は次の問題を抱えています:

>>>>>>>JsFiddleデモンストレーションへのリンク>>>>>>

折りたたみの例を使用し、getItemMetadataメソッドを追加しました。

dataView.getItemMetadata = function (row) {
        var thtId = data[row].id;
        if (data[thtId + 1] && data[thtId + 1].indent > data[thtId].indent) {
            return { 'cssClasses': 'parentClassName' }
        }
    };

これは、行を折りたたんで展開しようとするまでは正常に機能します。次のエラーが発生するより(展開時のみ):

Uncaught TypeError:未定義のプロパティ'id'を読み取ることができません

私の経験から、このエラーは、dataViewが子のプロパティを失うときに発生します。さらに調査したところ、コードがappendRowHtml関数(slick.grid.js#1217)に含まれていることがわかりました。

折りたたみ機能とgetItemMetadataの使用経験がある人はいますか?

ありがとう!

4

1 に答える 1

1

ソリューションは、SlickGridの作成者である@Tinによって開催されました

例外は「varthtId=data [row] .id」で発生しています。ここで、「row」は範囲外です。「id」プロパティにアクセスする前に、「data[row]」が存在するかどうかを確認する必要があります。グリッドは存在しない行のメタデータを要求します。これはバグと解釈される可能性がありますが、空の最後の行(新しいエントリの追加に使用される行)をカスタマイズできると便利なので、ちょっと意味があります。

https://groups.google.com/forum/#!topic/slickgrid/65vPmzXsLMQ

于 2012-06-12T20:56:01.777 に答える