【问题标题】:dojo 1.6 DataGrid cannot display lists?dojo 1.6 DataGrid 不能显示列表?
【发布时间】:2012-05-07 14:27:53
【问题描述】:

在 dojo 1.7.2 中,如果我创建一个包含数组值的数据存储,dojox.grid.DataGrid 会毫无问题地显示它们,并用逗号分隔每个项目。

但是,在 dojo 1.6 中,它只需要数组的第一个元素。我有一个项目,我必须使用 1.6 版。在那个版本中是否有任何解决方法?

为了说明问题,这里有两个例子:

谢谢!

【问题讨论】:

    标签: dojo dojox.grid.datagrid


    【解决方案1】:

    显然问题来自 ItemFileReadStore 而不是网格。 我修改了 1.6 的代码,改为使用 ObjectStore 和 MemoryStore,它工作正常。

    http://jsfiddle.net/psoares/HbFNY/16/

    【讨论】:

      【解决方案2】:

      这是一个缺陷,但事实并非如此。您的 JSON 结构并不完全正确,因为任何值都不允许作为数组,除非它是 childAttrs 之一。由于 [1,2,3].toString() 的性质,这就是您尝试将值设置为数组的原因。

      ItemFileReadStore 中的 get/set 与它的项目一起工作:

      store._arrayOfAllItems = {
       value1 : { values : [ 'realvalue' ] },
       value2 : { values : [ 'realvalue' ] }
      };
      

      getter 然后说

      store.get = function(itemById, val) { return itemById[val][0]; } 
         // why only the first arrayslot is pulled from store---/^
      

      在您的 JSON 构造中,是什么禁止您设置如下值?

         var data = {
              id: 'id',
              label: 'id',
              items: [
                  {
                  id: "value1",
                  values: "a,b,c"   // permit-able string value
              },
              {
                  id: "value2",
                  values: "foo"}
              ]
          };
      

      如果您想要一个 ID 的同一个键的多个值,那么您必须将数据作为子级传递并按原样处理它们,例如;

          data: {
              id: 'id',
              label: 'id',
              childrenAttrs: [ 'items', 'children'], // << default behavior
              items: [ {
                  id: "value1",
                  children: [
                    { id: "value1_1", values: 'a' },
                    { id: "value1_2", values: 'b' },
                    { id: "value1_3", values: 'c' }
                  ]
              }, {
                  id: "value2",
                  values: "foo"
              } ]
          }
      

      但是,只有 dojox.grid.TreeGrid 允许使用多级数据存储

      【讨论】:

        猜你喜欢
        • 2012-01-13
        • 2011-10-18
        • 2013-11-15
        • 1970-01-01
        • 2013-11-21
        • 1970-01-01
        • 1970-01-01
        • 2014-11-01
        • 2012-02-22
        相关资源
        最近更新 更多