【问题标题】:Updating entire dojox.grid.datagrid row更新整个 dojox.grid.datagrid 行
【发布时间】:2015-07-02 02:55:31
【问题描述】:

我一直在尝试更新网格的整行,但遇到了问题。我能够更新单个单元格(如果它没有格式化程序),但我希望能够更新整行。或者,我可以更新该列,但如果它具有格式化程序,我将无法使其正常工作。

这是我用来更新网格的代码:

grid.store.fetch({query : { some_input : o.some_input },
    onItem : function (item ) {
        dataStore.setValue(item, 'input', '123'); //works!
        dataStore.setValue(item, '_item', o);     //doesn't work!
    }
});

还有我的网格结构:

structure: [
    { type: "dojox.grid._CheckBoxSelector"},
    [[{ name: "Field1", field: "input", width:"25%"}
     ,{ name: "Field2", field: "another_input", width:"25%"}
     ,{ name: "Field3", field: "_item", formatter:myFormatter, width:"25%"}
     ,{ name: "Field4", field: "_item", formatter:myOtherFormatter, width:"25%"}
    ]]
]

【问题讨论】:

    标签: javascript datagrid dojo grid


    【解决方案1】:

    在 #dojo freenode 频道中从 'tk' 那里获得了一些信息,他们好心地整理了一个小提琴,展示了执行此操作的正确方法,最值得注意的是在 memoryStore 上放置了一个 idProperty 并覆盖了数据:http://jsfiddle.net/few3k7b8/2/

        var memoryStore = new Memory({
          data: [{
             alienPop: 320000,
             humanPop: 56000,
             planet: 'Zoron'
          }, {
             alienPop: 980940,
             humanPop: 56052,
             planet: 'Gaxula'
          }, {
             alienPop: 200,
             humanPop: 500,
             planet: 'Reiutsink'
          }],
          idProperty: "planet"
        });
    

    然后当我们要更新时:

        memoryStore.put(item, {
            overwrite: true
        });
    

    请记住,该项目必须有一个字段“行星”,并且它应该与我们现有的行星之一相同才能覆盖该行。

    【讨论】:

      猜你喜欢
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 2019-02-25
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多