2012-03-15 1 views
0

확장시 하위 노드를로드하려고합니다. 설명서에서 확장 아이콘을 클릭하면 레벨, 확장 등의 요청이 서버로 전송 될 것이라고 언급했습니다. 하지만 나를 위해 노드가 확장 될 때 URL이 서버로 전송되지 않습니다. 작동시키기 위해 어떤 설정을해야합니까.jqgrid treegrid json 데이터에 대한 주문시 아이디 (확장시)를로드하도록 설정합니다.

내 기존 설정은 다음과 같습니다 : -

jQuery("#tree").jqGrid({ 
url:'getTasks.htm', 
datatype: "json", 
mtype:'GET', 
colNames: ["id", "no.", "name"], 
colModel: [ 
    {name:'id',width: 30, editable:false, align:"right",sortable:false, hidden: true, key: true}, 
    {name:'no',width:80, editable:false, align:"left", sortable:true, sorttype:"int"}, 
    {name:'name', width:150, editable:true, sortable:true, sorttype:"text"} 

], 

treeGridModel:'adjacency', 
treeGrid: true, 
gridview:true, 
treedatatype: 'json', 
cellEdit: true, 
ExpandColumn:'name', 
cellsubmit : 'clientArray', 

jsonReader : { 
    root:"listTasks", 
    cell:"", 
    id: "id", 
    repeatitems:false 

} 

샘플 JSON 데이터는 다음과 같습니다 -

[Object { id="16731", no="1", name="name1", level="0", parent="null", isLeaf="false", expanded="false", loaded="true", icon="ui-icon-triangle-1-s"}, Object { id="16737", no="2", name="name2", level="0", parent="null", isLeaf="false", expanded="false", loaded="true", icon="ui-icon-triangle-1-s"}, Object { id="18846", no="3", name="name3", level="0", parent="null", isLeaf="false", expanded="false", loaded="true", icon="ui-icon-triangle-1-s"}, Object { id="-1", no="(new)", parent="null",level="0", isLeaf="false", expanded="false", loaded="true", icon="ui-icon-triangle-1-s"}] 

답변

1

당신은 TreeGrid에 (here 참조) 그 나무의 매개 변수의 문서에서 찾을 수 있습니다 nodeid , parentid, n_leveltreeGridModel:'adjacency'의 경우 노드 확장시 서버로 전송됩니다. "url"을 전송해서는 안됩니다.

어떤 값이 loaded 숨겨진 열의 값을 갖는지 추가적으로 중요합니다. 첫 번째로드에서 TreeGrid의 모든 데이터를 채우는 경우 true을 열에 배치해야 서버로의 요청이 노드를 확장하여 보내지 않습니다.

+0

올레그 : 답장을 기다리고있었습니다 .. !! 내가 제공 한 링크를 확인했습니다. 확장시로드 하위에 대한 의미, jqgrid의 postdata 옵션을 사용해야합니다. 예제에서, postdata는 rc.id, rc.n_level 등을 가지고 있습니다. 어떻게하면 rc (확장 된 행 ID)를 얻을 수 있습니까? 아이콘을 클릭하면 클릭 이벤트가 발생해야합니까 ?? – mayur

+0

rc가 정의되지 않았습니다. 오류가 발생했습니다 – mayur

+0

@mayur :'postData' 옵션을 사용할 필요가 없습니다. 'nodeid','parentid','n_level' 매개 변수는 jqGrid에 의해 자동으로 * 추가됩니다. 'nodeid','parentid','n_level' 매개 변수가 보내지는지 테스트 할 때 서버 측의 코드에 구현해야합니다. 서버가 보내지지 않으면 최상위 노드를 반환해야합니다. 세 개의 매개 변수가 정의 된 경우 노드'nodeid'의 하위 노드 * 만 돌려 보내야합니다. 클릭에 대한 다른 트리거는 구현할 필요가 없습니다. – Oleg