4

最近、プロジェクトの 1 つで SlickGrid を使い始めました。私のグリッドには、約 4,000 行と 6 列があります。問題は、列 2 から 6 が最初の 2 行でレンダリングされないことです。残りの行では、すべての列が適切にレンダリングされます。さらに、上下にスクロールすると、これらの行の欠落している列が表示されます。つまり、ページが最初に生成されたときにのみ問題が発生します。

ソース コードを調べたところ、次の行が問題の原因であることがわかりました。休憩をコメントアウトすると、グリッド全体が問題なくレンダリングされます。

1407     // Do not render cells outside of the viewport.
1408      if (columnPosRight[Math.min(ii - 1, i + colspan - 1)] > range.leftPx) {
1409        if (columnPosLeft[i] > range.rightPx) {
1410          // All columns to the right are outside the range.
1411          break;
1412        }

これらの行は、ビューポートの外側にある列のレンダリングをスキップしようとしているようです。ただし、最初の 2 行の列 2 ~ 6 がビューポートの外側にあると考える理由がわかりません (明らかに内側にあるのに)。

残念ながら、この問題を小さな例で再現することはできません。そのため、誰かが症状の説明から問題を特定できることを願っています。助けてください。

4

1 に答える 1

0

レンダリングする値に特殊文字 (<、> など) が含まれている可能性があります。カスタム フォーマッタを使用してこれらの文字をエスケープできます。

function escapeHTMLFormatter(row, cell, value, columnDef, dataContext) {
    if (value == null) {
       return "";
    } else {
       return (value + "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
    }
 }
于 2014-06-15T11:12:17.150 に答える