2012-01-30 3 views
2

dojo.data.ObjectStore 및 dojo.store.Cache를 통해 dojo.store.JsonRest에 연결된 Dojo Datagrid를 사용하고 있습니다. 캐시 저장소에 연결된 dojo.store.Memory도 있습니다.Dojo Datagrid는 항상 오래된 데이터를 표시합니다.

데이터 그레이드는 드롭 다운으로 편집 할 수 있습니다. 처음에 값이 변경되면 모든 것이 잘된 것처럼 보이지만 같은 행을 두 번 편집하면 편집 내용이 JsonRest와 서버로 전달되지만 그리드 자체는 이전 값으로 돌아갑니다.

알려진 버그입니까? 해결 방법에 대한 아이디어가 있습니까?

+0

코드를 게시 할 수 있습니까? – Ted

+0

정말 코드를 볼 필요가 ... 당신은 실제로 db 승/적절한 저장 (@ TedPrz 지적으로) 데이터를 다시 쓰고 있습니까? – pinkeerach

답변

0

데이터를 서버에 저장 한 후 그리드 업데이트 행을 만들 수 있습니다.

 

function onApplyCellEditHandler(inGrid, inValue, inRowIndex, inFieldIndex) { 
    inGrid.yourStore.save(); 
    inGrid.updateRow(inRowIndex); 
} 
 

는 그것이 변경 사항이 지속되지 않는 이유를 말하기 어렵다 코드를 보지 않고

0

희망이 도움 : 같은 콜백이 될 수 있습니다. DataGrid는 유니폼 데이터 인터페이스를 사용하여 변경 사항을 다시 데이터 저장소에 기록합니다. 셀을 편집하면 변경 사항은 Dojo 데이터 어댑터의 setValue() 메소드를 통해 다시 기록됩니다. 저장되지 않은 변경 사항은 save() 메서드를 호출 할 때까지 어댑터에 저장됩니다. dataStore.save(); save()가 호출되면 put() 호출을 통해 모든 변경 사항이 객체 저장소로 전달됩니다. 명심해야 할 점은 그리드가 단순히 상점의 데이터를 표시/반영한다는 것입니다. 그리드에서 셀을 편집하면 변경 사항이 기본 저장소에 영구적으로 적용되지 않으면 유지되지 않습니다.