2010-03-30 1 views

답변

1

즉각적인 응답은 "왜 그렇게하고 싶습니까?"명백한 해결책은 각 셀/셀 컨텐츠 구성 요소에 ajax onClick 비헤이비어를 추가하는 것입니다 (분명히 한 가지 동작 만 작성하면됩니다). 이것이 작동하도록 설계된 방법입니다.

당신이 제안한 것처럼 핸들러를 작성할 수는 있지만 테이블의 컴포넌트 트리를 통해 트래킹해야하며 각 셀에 올바른 JS onClick 콜백을 추가해야합니다. 그런 다음 실제로 onClick 이벤트를 표시하지 않는 구성 요소에 onClick 비헤이비어를 추가하는 의미에 대해 생각해야합니다.

기본적으로 프레임 워크 (꽤 깔끔한) 아약스 모델을 우회하는 커스텀 코드가 전혀 필요 없습니다.

+0

맞아요. 정말 좋은 생각이 아닙니다. –

0

모두 처리기가 하나만있을 때 어떤 셀을 클릭했는지 어떻게 알 수 있습니까? 거의 불가능합니다.

그러나 문제의 개찰면은 간단합니다. 언제나 자신 만의 IModel을 작성하거나 AbstractReadOnlyModel을 확장 할 수 있습니다. 하나의 메소드 인 getObject() 만 구현하면됩니다.

0

분명히 이것은 클라이언트 측 자바 스크립트가 서버로 보내기위한 정보를 추출해야합니다. 이 정보는 다음 코드 (AN AbstractDefaultAjaxBehavior 서브 클래스에서) 아약스 콜백

generateCallbackScript (새 AppendingStringBuffer ("wicketAjaxPost (\ '를"생성 할 준비가되면 ). 추가 (getCallbackUrl)()는 false. ("\를 추가' , 'java.security.Param ='+ Wicket.Form.encode (yourDataGoesHere) "));

및 RequestCycle.get(). getRequest(). getParameter ("param ")