json将值加载到extjs checkboxgroup网格编辑器中

时间:2010-11-01 22:52:58

标签: json extjs checkbox grid store

我需要设置一个CheckboxGroup复选框,其中包含来自某个url的json加载的值。 什么是JSON的正确格式?

非常感谢您的帮助!

更新:我会澄清我的问题。

我正在使用EditorGridPanel。行是期间。有列Start_at,Finish_at,Region。第一个和第二个是日期,一切都可以。 Region的问题实际上是一个CheckboxGroup,每个星期都有一个复选框 - 星期一,星期二等等。所以:

首先我将数据从服务器加载到商店

function setupDataSource() {
    row = Ext.data.Record.create([
        { name: 'start_at', type: 'string' },
        { name: 'finish_at', type: 'string' },
        { name: 'region', type: 'string' }
    ]);      

    store = new Ext.data.Store({
        url: '/country/195/periods',
        reader: new Ext.data.JsonReader(
            {
                root: 'rows',
                id: 'id'
            }, 
            row
        )
    });

    store.load();

}

网址:'/ country / 195 / periods'返回JSON:

{"rows": [{"region": {"cbvert_1": 1, "cbvert_2": 0, "cbvert_3": 1, "cbvert_4": 0, "cbvert_5": 1, "cbvert_6": 0, "cbvert_7": 1}, "start_at": "2010-10-17", "id": 1, "finish_at": "2010-10-28"}]}

然后我正在建立一个网格:

function buildGrid() { 

    sm = new Ext.grid.RowSelectionModel();     
    cm = new Ext.grid.ColumnModel([

        // ... Start at and Finish at columns definition here ...

        { header: 'Region',
          dataIndex: 'region', 
            width: 150, 
            editor: new Ext.form.CheckboxGroup({    
            xtype: 'checkboxgroup',
        columns: 7,
        vertical: true,
        items: [
           {boxLabel: 'M', name: 'cbvert_1', inputValue: 1},
           {boxLabel: 'T', name: 'cbvert_2', inputValue: 1},
           {boxLabel: 'W', name: 'cbvert_3', inputValue: 1},
           {boxLabel: 'T', name: 'cbvert_4', inputValue: 1},
           {boxLabel: 'F', name: 'cbvert_5', inputValue: 1},
           {boxLabel: 'S', name: 'cbvert_6', inputValue: 1},
           {boxLabel: 'S', name: 'cbvert_7', inputValue: 1},
                    ]
                }),
            renderer: function(value) {}
        }]);  

     // ...

}

因此,当我点击网格单元格时,我需要使用先前存储在数据库中的值预先选择复选框。现在所有的复选框都保持空白,但在JSON中应该是1010101。

请指出错误或某种解决方案。任何帮助将不胜感激。 非常感谢!

1 个答案:

答案 0 :(得分:1)

检查一下: http://www.sencha.com/forum/showthread.php?47243-Load-data-in-checkboxgroup

<强>更新 删除区域字段的类型声明。您不需要字符串而是对象(来自JSON)。它的工作原理很好:)