json 将值加载到 extjs 复选框组网格编辑器中

Posted

技术标签:

【中文标题】json 将值加载到 extjs 复选框组网格编辑器中【英文标题】:json to load values into extjs checkboxgroup grid editor 【发布时间】:2011-05-03 16:35:33 【问题描述】:

我需要设置一个 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();

URL url: '/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】:

看看这个: http://www.sencha.com/forum/showthread.php?47243-Load-data-in-checkboxgroup

更新: 删除区域字段的类型声明。您不需要字符串而是对象(来自 JSON)。这样就很好用了:)

【讨论】:

感谢 Donatas 的帮助!不幸的是,我在那里没有找到可行的解决方案。我已尝试应用 json 格式,但仍然无法正常工作:(。我已经更新了我的帖子并提供了详细说明。请说一下你的想法?谢谢!

以上是关于json 将值加载到 extjs 复选框组网格编辑器中的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS 4 - 如何禁用特定行中的复选框

以编程方式将记录添加到 ExtJS 中的网格后切换单元格编辑器

Extjs Combo - 如何使用 GetForm().load 将值加载到组合

Extjs5 如何设置grid的某行的某列单元格处于编辑状态

如何在加载了 JSON API 数据的 tableview 单元格中保存复选标记属性?

如何根据复选框状态extJs 6禁用网格上的单元格