2009-12-04 5 views
4

일부 입력에 따라 데이터가있는 모달 팝업에서 jqgrid가 있습니다. ,이 표시되지 않고 데이터 요구되지 않는 그리드가 먼저 화면에로드jqgrid가 초기에 데이터를로드하는 것을 억제하는 방법은 무엇입니까?

$(ContainerGrid.Grid).setGridParam({ 
    url: urlGetContainers + '?CRALineId=' + currentCRALineId 
}).reloadGrid(); 

: 나는 아래 다음 팝업을 보여주는 등의 입력을 기반으로 그리드의 URL 옵션을 설정하여이 일을하고있다 모달 팝업이 표시 될 때까지 검색 할 수 있습니다. 아쉽게도 jqgrid는 여전히 url 옵션을 기반으로 데이터를 가져 오도록 요청합니다.

hiddengrid 속성을 사용하여 처음에는 표를 숨기거나 접어두고 데이터 요청을하지 않도록 시도했습니다. 그러나 그리드를 표시/확장하는 프로그래밍 방식을 찾을 수 없었기 때문에이 방법은 효과가 없었습니다.

처음에는 데이터를로드 할 때 jqgrid를 억제 할 수있는 방법이 있습니까?

답변

3

모달 팝업의 '표시'이벤트에서 눈금을 초기화하십시오. jqGrid를 동적으로 생성하여 DOM에 삽입 한 다음 일반 초기화 코드를 사용하여 데이터를 늦게 바인딩 할 수 있습니다.

+1

니스! 팝업이 여러 번 열렸지만 작동하는 경우 한 번 이상 초기화하지 않도록해야합니다. – JChristian

0

URL의 해시 부분을 검색하면 데이터를로드하기 위해 그리드가 필요할 때와 비슷한 필요성이있었습니다 (URL의 해시 부분은 필터가 내 눈금에 대해 설정 한 내용을 결정하고 데이터는 그리드에로드 됨).

그리드 설정에 : 그래서 시작시 데이터를로드에서 내 그리드를 방지하기 위해,이 내가 무슨 짓을

$("#grid").jqGrid({ 
    url:"", 
    mtype:"", 
    ... 

나중에 실제로 데이터를로드하는 데 필요한 경우 :

$("#grid").jqGrid("setGridParam",{datatype: "json", mtype: 'POST', url: myUrl, postData: params}).trigger("reloadGrid"); 

I을 또한 이전 게시물의 게시물 변수가 향후 게시물에 포함되지 않도록 위의 다시로드 전에 {postData : null}을 수행해야합니다.

관련 문제