2011-02-17 4 views
1

ExtJS 그리드에 대한 열을 동적으로로드하려면 어떻게해야합니까? 열 머리글을 JSON으로 보내고 그리드에서 필요로하는 열을 생성 할 수 있기를 원합니다. 더 구체적으로ExtJS에 대한 열을 동적으로로드하는 중

, 나는 이것이 GroupingHeader 플러그인을 사용하여 수행하는 걸려 라,하지만 난 정말 그냥 먼저 GroupingHeader 플러그인의 복잡성없이 작업을 수행하는 방법을 파악하려면 다음 나는 그 문제 :

를 해결할 수 있습니다 여기

내가 열 머리글을 위해이 일부 샘플 JSON 데이터입니다 : 이것은 내가 run_id가 그룹화 된 헤더 것 그룹화를 수행 할 필요가 데이터가

[ 
    { 
     "run_id":"110207gad", 
     "iterations":[ 
      "1_14", 
      "2_16", 
      "3_18", 
      "4_20", 
      "5_22" 
     ] 
    },{ 
     "run_id":"110207gae", 
     "iterations":[ 
      "1_14", 
      "2_16", 
      "3_18", 
      "4_20", 
      "5_22" 
     ] 
    } 
] 

iterations이 될 것입니다 열 머리글. 현재로서는 iterations이 열로 표시되고 그룹화가 작동하도록 작업 할 수있어서 행복합니다.

누군가가 올바른 방향으로 나를 가리킬 수 있거나 시작해야 할 부분에 대한 힌트를 줄 수 있다면 매우 유용 할 것입니다! 나는 이것을 스스로 알아낼 수있을뿐만 아니라 ExtJS 예제를보고 일부 Google 검색을 수행하는 것으로 파악할 수 없기 때문에 약간의 충돌이 필요합니다.

답변

1

ExtJS 예제의 소스 코드를 살펴 보시기 바랍니다.

http://dev.sencha.com/deploy/dev/examples/grid/array-grid.js

그것은 당신에게 정보의 공정한 금액을 주어야한다가 시작합니다.

당신은이 형식에서 시작하여 서버에서 전달할 수 :

{"success":true,"message":"Loaded data","data":[{"run_id":1,"iterations":"1"},{"run_id":2,"iterations":"2"},{"run_id":3,"iterations":"3"}]}

그런 다음 당신의 독자가 다음과 같이 표시됩니다

var reader = new Ext.data.JsonReader({ 
    totalProperty: 'total', 
    successProperty: 'success', 
    idProperty: 'run_id', 
    root: 'data', 
    messageProperty: 'message' 
}, [ 
    {name: 'run_id'}, 
    {name: 'iterations', allowBlank: false} 
]); 
+0

이 예는 않고 간단한 그리드를 만드는 방법을 보여줍니다 서버에서 데이터로드. 서버로부터 데이터를로드하려면'Ext.data.JsonStore'와'Ext.data.JsonReader'가 필요합니다. Ext> data> JSONStore 섹션에서 http://dev.sencha.com/deploy/dev/docs/ 문서를 볼 수 있습니다. 희망이 도움이됩니다. – Rafal

+0

배열을 사용하여 만들 수 있지만 배열을 "빌드"하기 위해 JavaScript에 PHP 코드를 주입하여 매우 복잡하지는 않습니다. JSONStore 예제를 사용하는 데 꽤 많은 시간을 허비하고 있습니다. 실제로 JSON 데이터를 동적으로 생성하려는 것처럼 작동하도록 JSON 데이터를 포맷해야 하는지를 실제로 이해하지 못합니다. 그래도 정보를 가져 주셔서 감사합니다! – Jared

+0

@Jared 구조체 정의에 대한 팁을 추가하여 답변을 업데이트했지만이 예제에서는 JSON을 사용하는 코드를 확인할 수 있습니다. Firebug를 사용하면 서버에서 전달 된 JSON 문자열을 볼 수 있습니다. http://dev.sencha.com/deploy/dev/examples/writer/writer.js – Rafal

관련 문제