1

私はこの問題を抱えています.xmlを介してデータを渡すときに、jqGridのツリーグリッドは最後のオプション(展開されたノードかどうか)を無視します。誰もこれに遭遇しましたか?解決策はありますか?多分それは私のデータですか?問題を生成するサンプル データを次に示します。

<rows>
    <page>1</page>
    <total>0</total>
    <records>4</records>
    <row id='2'>
            <cell>2</cell>
            <cell>Parent</cell>
            <cell>0</cell>
            <cell>NULL</cell>
            <cell>false</cell>
            <cell>true</cell>
          </row>
    <row id='1'>
            <cell>1</cell>
            <cell>Child 1</cell>
            <cell>1</cell>
            <cell>2</cell>
            <cell>true</cell>
            <cell>false</cell>
          </row>
    <row id='3'>
            <cell>3</cell>
            <cell>Child 2</cell>
            <cell>1</cell>
            <cell>2</cell>
            <cell>true</cell>
            <cell>false</cell>
          </row>
    <row id='4'>
            <cell>4</cell>
            <cell>Child 3</cell>
            <cell>1</cell>
            <cell>2</cell>
            <cell>true</cell>
            <cell>false</cell>
          </row>
</rows>
4

1 に答える 1

1

TreeGridのバグのように思えます。それでも、展開する必要があるノードにプロパティを追加loaded: trueすることで、問題を簡単に修正できます。コード行と上記のいくつかの行 (ここを参照)理由は、loadedプロパティ (およびldat[loaded]) でundefinedあり、定義されていないすべての項目に対してldat[expanded]に変更されます。undefinedloaded

デモはソリューションを示します。投稿したXMLを使用しますが、アイテム<cell>true</cell>の定義の最後に追加が追加されてい"Parent"ます:

...
<row id='2'>
    <cell>2</cell>
    <cell>Parent</cell>
    <cell>0</cell>
    <cell>NULL</cell>
    <cell>false</cell>
    <cell>true</cell>
    <cell>true</cell> <!-- added the element for loaded: true -->
</row>
...

更新: バグを修正する最も簡単な方法 (最初はここで説明されています) は、コードを変更することだと思いますsetTreeNode

ldat[expanded] = ((ldat[expanded] == "true" || ldat[expanded] === true) ? true : false) &&
    ldat[loaded];

次へ

ldat[expanded] = ((ldat[expanded] == "true" || ldat[expanded] === true) ? true : false) &&
    (ldat[loaded] || ldat[loaded] === undefined);

固定コードを使用した対応するデモを参照してください。

于 2012-11-02T13:50:23.960 に答える