2012-08-31 4 views
1

테이블/목록에 표시 할 항목이 있습니다. 배경 작업 및 다른 사용자가 동일한 데이터에 액세스하기 때문에이 세트는 매우 가변적입니다.Wicket : 변경 가능한 ListView/DataView의 링크

결과 출력에는 기본 데이터에 대한 동작을 트리거하는 링크가 있어야합니다. 이 조치는 세트에서 항목을 제거 할 수 있지만 항상 그렇게하지는는 않습니다.

ListView 모델 (현재 DataView에 대해서는 잘 모르겠습니다)은 인덱스 기반이므로 이러한 상황에서는 실패 할 수밖에 없습니다. 기본 목록의 순서 나 크기가 변경 되었기 때문에 잘못된 개체를 참조하는 링크를 클릭하면 오류가 발생합니다.

그래서 내가 필요로하는 것은 항상 작동해야하는 객체의 자연 ID를 참조하는 링크입니다. 링크가 사용자에게 렌더링되면 렌더 타임에 사용 된 세트가 어떤 일이 생기더라도 렌더링 된 링크가 항상 같은 객체를 참조하도록합니다.

마음에 오는 가장 쉬운 해결책은 사용자에게 다른 페이지로 안내하는 액션과 ID 만 포함하는 상태 비 저장 링크를 사용하는 것입니다. 하지만 이것은 컴포넌트 시스템이 제공하는 모든 이점을 잃어 버리는 명백한 단점이 있습니다.

이 문제를 어떻게 해결하겠습니까?

+0

약식 코드를 보여줄 수 있습니까? 목록 모델의 데이터와 listitems 모델의 링크 데이터를 유지할 때 일부 인덱스가 실패하는지 여부는 중요하지 않습니다. listitems 모델에 인덱스를 저장하고 데이터를 다시 액세스하려고해도 문제가 될 수 있습니다. 그러나 이것은 개찰 및/또는 java뿐만 아니라 모든 곳에서 문제가 될 수 있습니다. – Nicktar

답변

0

DataView는 인덱스 기반이 아닙니다. IDataProvider # model()을 참조하십시오. 그렇다면 올바른 대답에 가깝게 위치 할 수 있습니다.