2012-04-11 4 views
0

인라인 너브를 사용하고 있습니다 (성공적으로 도움이 되었기 때문에!).그리드가로드 될 때 jqGrid dataUrl이 로딩되지 않습니다.

이제 select 문에서 dataUrl을 사용하여이 동작을 이해하지 못합니다.

그리드가로드 될 때 선택 옵션이로드되지 않습니다. 레코드를 편집하거나 추가 할 때까지 선택 HTML 요청이 이루어지지 않습니다.

그리드가로드되는 즉시로드 할 수 있습니까?

$("#navgrid").jqGrid({ 
    sortable: true, 
    rownumbers: true, 
    url: 'cms.dbw?action=ajaxgrid&sessionid=3d70a780-d6ec-102f-bd56-0015171f0bcc&subaction=jq&tableid=carepln', 
    editurl: 'cms.dbw', 
    datatype: 'json', 
    mtype: 'GET', 
    pager: '#navgrid_bottompager', 
    rowNum: 10, 
    rowList: [10,50,100], 
    width: 750, 
    height: '100%', 
    shrinkToFit: false, 
    toolbar: [false,'top'], 
    sortname: 'id', 
    sortorder: 'asc', 
    viewrecords: true, 
    gridview: true, 
    altRows: false, 
    toppager: true, 
    caption: 'Care Plan Detail', 
    colNames: ['ID','Act','Resident Code','Care Code'], 
    colModel: [ 
     {name:'id',index:'id',width:50,align:'center',search:false,key:true,hidden:true}, 
     {name:'active',width:30,align:'center',editable:true,edittype:'checkbox',editoptions: {value:'Y:N'},formatoptions:{disabled:false,value:"Y:N"}}, 
     {name:'resid',align:'left',editable:true,width:70}, 
     {name:'classid',align:'left',editable:true,edittype: 'select',editoptions: { dataUrl: 'cms.dbw?action=ajaxgrid&sessionid=3d70a780-d6ec-102f-bd56-0015171f0bcc&subaction=jqsubtable&tableid=careserv&field1=classid&field2=description'} ,width:70} 
    ] 
}); 

{ "페이지"1 "기록"(4024), "총"403 "행": [{ "ID": "1", "셀"[ "1" , "Y", "100243", "22020"]}, { "id": "2", "셀": [ "2", "Y", "100220", "22020"]}, { "id ""3 ","셀 ": ["3 ","Y ","100193 ","22020 "]}, {"id ":"4 ","셀 ": ["4 " , "100082", "22020"]}, { "id": "5", "셀": [ "5", "Y", "100068", "22020"]}, { "id": "6 셀 ":" "6", "Y", "100241", "22020"]}, { "id": "7", "셀": [ "7", "Y", "100215" , "22020"]}, { "id": "8", "셀": ""8 ","Y ","100059 ","22020 "}}, {"id ":"9 " ""9 ","Y ","100240 ","22020 "]}, {"id ":"10 ","셀 ": ["10 ","Y ","100009 " ]}]

dataUrl가 해결되지 않습니다. 편집이 시작될 때까지 그리고 편집 후에는 표시되지 않습니다.

답변

0

편집 시작시 dataUrl이로드되어서 불리한 점이 없습니다. 반대로 나는 이점과 같은 행동을 본다. 무엇보다 먼저 데이터를로드해서는 안됩니다. 필요에 따라 데이터를로드하는 것이 좋습니다. 두 번째 이점은 현재 데이터를 dataUrl에서 가져 오는 것입니다. 편집 시작시 현재 데이터가 dataUrl에서로드됩니다. 따라서 서버에서 데이터가 변경되면 모든 행을 편집 할 때마다 다른 값을 가질 수 있습니다.

데이터를 번로드해야하는 경우 번만 사용하면 dataUrl을 전혀 사용할 수 없습니다. 대신 당신은 setGridParam에 대해 editoptions.value을 설정하기 위해 별도의 Ajax 호출을 할 수 있습니다.

+0

나는 당신이 나열한 이점을 이해하고, 나는 jqGrid가 예외적 인 도구라고 생각한다. –

+0

나는 당신이 나열한 장점을 이해하고, 나는 jqGrid가 예외적 인 도구라고 생각한다. 내가 원하는 것은 그리드 자체의 진정한 선택 상자와 같은 역할을하고 아약스는 서버에서 옵션을 가져 와서 편집하거나 추가하자마자 바로 수행한다. 그러나 그리드 표시 시간에

+0

@ GregNeid : 죄송합니다. [인라인 편집]에서 선택을 사용 하시겠습니까 (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing)? 이 경우'dataUrl'을 사용할 수 있습니다. 현재 가지고있는 문제는 무엇입니까? – Oleg

0

동일한 문제가 있습니다. 데이터에 외래 키가 있는데 사용자가 모르는 임의의 키가 아닌이 열에 대해 이해할 수있는 값을 표시하고자합니다. 너와 마찬가지로 dataUrl을 사용하여 옵션을 얻었고 formatter:'select'을 사용하여 행을 편집하지 않아도이 값을 표시하려고합니다. 문제는이 Ajax 요청은 행이 편집 될 때만 발생하므로 편집이 발생할 때까지 값을 알지 못한다는 것입니다. 내가 찾은 유일한 해결책은 그리드를 설정하기 전에이 값들을 수동으로 아약스 로딩 한 다음이 값을 사용하여 다른 열 중 하나에 대해 수행 한 것과 마찬가지로 editoptions: {value: ... }을 설정하는 것입니다. 그리드 포맷터가 편집을하기 전에이 값을 알 수있는 유일한 방법입니다.

This answer은 gird 앞에 옵션을로드하는 예제를 제공하지만 formatter:'select' 부분은 여기에 link이라는 문서가 있습니다.

+0

@ ZacharyOlsen : 편집하기 전에 '암호'가 해결되지 않습니다. 편집 할 때까지 암호가 표시되고 ***********이됩니다. –

+0

약간 실망 스럽습니다. 편집 유형이 있다면 그것에 대한 형식 작성기 유형이 있다고 가정했을 것입니다. 이 문제를 해결하기 위해이 토론을 확장하여 다음과 같이 해결할 수 있습니다. http://www.trirand.com/blog/?page_id=393/help/how-to-hide-password-characters-in-column-formatterpassword- 무시된다 / –

관련 문제