2011-04-26 1 views
0

여기 내 상황이 있습니다 : 사용자가 "Section1", "Section2"또는 "Section3"과 같은 섹션을 선택합니다 (예 : 드롭 다운에서). 그런 다음 OK 단추 (또는 일부 링크)를 클릭합니다.일반 Wicket이있는 드롭 다운 목록을 기반으로 동적으로 새 페이지로 사용자를 안내하려면 어떻게합니까?

내가해야 할 일 : 버튼/링크를 클릭하면 선택한 섹션으로 리디렉션됩니다. www.homepage.com/docs#section2.

지금까지, 나는 LinkonClick 방법에서 양식을 처리 할 수 ​​없었다,도 아니다 나는 Button 방법 onSubmit()에서 Link 일부 clickLink를 호출 할 수 있었다.

AJAX 또는 JavaScript를 사용하지 않는 것이 좋습니다. 어떻게해야합니까?

+1

작업 할 항목이 있으므로 표시해주십시오. –

+0

코드가 없습니다 (관련 없음) 이 문제를 해결하는 방법에 대한 아이디어가 있습니다. (내 생각에 이것은 일반적인 문제이며 누군가 먼저 해결해야만했다.) – Phill

답변

1

링크가 양식을 제출하지 않았기 때문입니다. 그것은 어딘가에 연결되는 역할을합니다. 양식 데이터에 액세스하려면 먼저 양식을 제출해야합니다. 링크 대신 SubmitLink를 사용하고 SubmitLink의 onSubmit 기능에서

getRequestCycle().setRequestTarget 
    (new RedirectRequestTarget("www.homepage.com/docs#section2")); 

으로 전화하십시오. Javadoc을 보면이 기능이 작동하지만 지금은 테스트 할 수 없습니다.

A RequestTarget that will send a redirect url to the browser. Use this if you 
want to direct the browser to some external URL, like Google etc, immediately. 
Or if you want to redirect to a Wicket page. If you want to redirect with a 
delay the RedirectPage will do a meta tag redirect with a delay.
+0

PageParams는 적절한 위치로 이동하는 방법을 제외하고는 훌륭합니다 ... 자바 스크립트로 다시 폴백해야합니다. – Marcelo

+0

@Marcelo 실제로 좋은 점 ... 나는 이것을 해결하기 위해 나의 답을 바로 잡았다. – Nicktar

+1

그리고 Nicktar의 대답에 urlFor (Class clazz) 메서드를 사용하여 url 문자열을 생성하고 폼에 선택된 값에 따라 "# section2"를 추가 할 수 있습니다. – Marcelo

1

Link.setAnchor(Component)을 사용해 보셨습니까?

+0

나는 그렇게했다. 문제는 먼저 양식을 처리해야한다는 것입니다 (사용자 선택). 그런 다음 특정 위치로 div를 만들고 setAnchor를 만듭니다. 그리고 모든 것을 한 사용자가 클릭하여 (섹션 선택 + 버튼/링크 누름) 저는 AjaxLink와 javascript (scrollTo)를 사용하여이를 관리합니다. 그러나 나는 그런 식으로 그것을 좋아하지 않는다. 나는 깨끗한 해결책을 선호한다. – Phill

+0

나는 본다. 나는 그 질문을 오해했다. 아마 onSelectionChanged의 링크에 앵커를 수정하는 목록을 선택하는 방법을 살펴볼 것입니다. – laz