2012-04-26 5 views
2

Visualforce에서 사용자가 검색어를 입력하고 검색을 클릭하며 결과가 검색 상자 아래에 표시되는 Google과 유사한 응용 프로그램을 만듭니다. 이 부분, 사용자가 검색을 클릭하면 검색이 진행되는 동안, actionStatus가 "...로드"를 표시하도록 설정되어 : 페이지 컨트롤러에서 버튼 클릭을 시뮬레이트하려면 어떻게해야합니까?

<apex:commandButton value="Search" action="{!runQuery}" status="loading"/> 

지금 내가 방문 페이지를 설정하기 위해 노력하고있어, 초기 검색을 위해 입력 필드와 검색 버튼이있는 페이지입니다. Google 스타일에서 첫 번째 검색은 결과가 표시되는 페이지로 사용자를 이동시키고 검색 상자는 맨 위로 이동합니다.

문제는 페이지로드시 actionStatus를 호출하는 방법을 모르겠다는 것입니다. 사용자가 버튼을 클릭 할 때 충분히 쉽지만 방문 페이지에서 검색 할 때 새 페이지가로드되고 다음에 검색이 수행됩니다. 지금은 컨트롤러의 생성자가 매개 변수를 확인하고 발견 된 경우 runQuery()을 수동으로 호출하지만 페이지로드 시간이 지연되고 actionStatus가 호출되지 않습니다.

아이디어가 있으십니까?

답변

1

onLoad 이벤트 호출을 추가했지만 작동하지 않았지만이 태그를 페이지 끝의 apex:page 태그 바로 앞에 두었습니다. 그 이유는 모르겠지만 깨끗하고 일을 끝내게됩니다.

<script> 
    runQuery(); 
</script> 
2

사용

<apex:actionFunction name="runQueryJS" action="{!runQuery}" status="loading" /> 

다음 신체의로드 이벤트 핸들러를 연결, 클라이언트 측 호출 지점을 만들 수있는 (또는 당신의 쿼리를 실행하여 원하는 목적지까지 다른) 할 것 runQueryJS() 자바 스크립트 함수를 호출합니다 검색을위한 Ajax 호출.

관련 문제