2012-11-02 1 views
1

이 문제가 발생하면 jqGrid의 treegrid가 xml을 통해 데이터를 전달할 때 마지막 옵션 (확장 노드 또는 확장되지 않음)을 무시합니다. 누구든지이 문제가 발생 했습니까? 해결책이 있습니까? 그게 내 데이터일까요? 다음은 문제를 생성하는 샘플 데이터입니다.jqGrid 트리 그리드는 xml 데이터가 제공 될 때 확장 상태를 무시합니다.

<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> 

답변

1

TreeGrid의 버그로 보입니다. 그럼에도 불구하고 노드에 loaded: true 속성을 추가해야 문제를 쉽게 해결할 수 있습니다. 코드 the line의 이유 및 loaded 속성 (및 ldat[loaded])이 undefined 될 것이고 그래서 ldat[expanded] 모든 아이템 정의 된 loaded 갖지 않는 undefined 위해 변경 될 일부 위 라인 (here 참조).

The demo은 용액을 설명한다.

... 
<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> 
... 

업데이트] : 그것은 당신이 게시하지만 추가 <cell>true</cell>"Parent" 항목의 정의의 끝에 추가 XML을 사용하여 내가 가장 쉬운 방법으로 할 것이다 (원래 here 설명) 버그를 해결하기 위해 생각 다음

ldat[expanded] = ((ldat[expanded] == "true" || ldat[expanded] === true) ? true : false) && 
    (ldat[loaded] || ldat[loaded] === undefined); 
,536에 코드 setTreeNode

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

the line 변경

the corresponding demo 고정 코드를 참조하십시오.

+0

감사합니다. 로드 매개 변수로이 오래된 버그를 발견했지만 제작자는 몇 달 전에 해결되었다고 말했습니다. 소스 코드가 변경 되었기 때문에 새로운 버전에서 해결 방법을 적용하는 방법을 알지 못했지만 실제로 작동합니다. 감사! –

+0

@MihalisBagos : 안녕하세요. 나는'setTreeNode'의 코드를 좀 더 분석하려고 시도 할 것이고 제안을 게시하여 버그를 trirand로 수정하는 방법을 게시 할 것입니다. 내가 이렇게하면 알릴거야. – Oleg

+0

@MihalisBagos : 버그 수정에 대한 제안으로 내 대답을 업데이트했습니다. – Oleg