2011-04-27 5 views
3

내 페이지에 두 개의 jqgrids이 있습니다. 페이지로드 i는 ajax 호출을 사용하는 사용자에게 modeldialogwindow을 팝업합니다. 나는 사용자가 선택한 팝업 창에서 값을 사용하여 jqgrid를 채 웁니다. jqgrid로드 ajax 호출을 지연시킬 수 있습니까? (부여함으로써 timeout?) 내 문제는 때로는 그리드 ajax 팝업 전에 화재를 호출합니다. 그래서 백엔드에서 오류를 던질 것입니다. 해당 사용자가 선택한 값이 존재하지 않기 때문에 (. 나는 시퀀스 방식으로 다음을 수행해야합니다. 순서대로 두 개의 jqgrid를로드하십시오 (시퀀스 아약스 호출)

  1. 팝업 창을 보여줍니다. 사용자 응답을 대기합니다 (window.showModalDialog를 사용하는 경우이 자동으로 발생합니다)를 얻을 값을 사용자가 선택한 후의 최종 뒷있다.

  2. 송신 Ajax 호출을 제 1 그리드를로드.

  3. 송신 Ajax 호출을 2 그리드를로드.

내가 지연시킬 수없는 '$(document).ready' 바로 뒤에 jqgrids가 채워지기 때문입니다.

귀하의 도움에 감사드립니다. 미리 감사드립니다.

답변

8

초기화시 두 격자의 datatype 매개 변수를 'local'으로 설정해야합니다. ajax 호출을 차단합니다. 사용자 후 ajax에 필요한 모든 매개 변수는 datatype'json'에 설정해야합니다 요청 선택 (또는 'xml'는 사용자의 요구 사항에 따라 다름) 및 reloadGrid를 트리거 :

$("#list").setGridParam({datatype:'json',page:1}).trigger('reloadGrid'); 
+0

다시 감사드립니다. 이게 해결 됐어. 초기 데이터 유형을 'local'로 설정합니다. 당신의 도움을 주셔서 감사합니다. – Sam

+0

@ Sam : 천만에! – Oleg

0

$ (document) .ready에서 jqgrid 함수를 호출하는 대신 사용자가 모달 상자에서 선택을하면 시작되는 이벤트로 이동합니다.

+0

@dik_is이 - 응답 d1k 주셔서 대단히 감사합니다. 귀하의 접근 방식을 사용했지만 몇 가지 문제가 발생했습니다. 당신의 도움을 주셔서 감사합니다. – Sam

관련 문제