大家好!在使用DOJO的dojox.grid.DataGrid时,把store链接到了ItemFileReadStore上面。
返回的JSON的结构是一组Person对象,
Person对象里面有Name等属性,同时也有一个子对象Category,Category对象也有它自己的属性。现在的问题是Person对象的属性可以通过Datagrid的filed属性来指定并且正常显示,但是Category的属性不能用filed来指定。请问如果要把子对象Category的属性显示出来,应该如何配置?谢谢!
   

解决方案 »

  1.   

    数据源必须按照DOJO中指定的格式返回,你这样一个对象包另一个对象可能不能显示哦
    像数据源中只能有filed,hidden,width等吧
      

  2.   


    恩,我现在没有找到比较简单的处理方法。
    不过我自己用下面的方式算是解决了这个问题,个人感觉还是有点麻烦,期待更为简单的方法!不用filed来指定子对象,用get来指定一个取值的函数。
    在函数里面用store.getValue来取得子对象的句柄,然后返回子对象的属性。代码示例:function subObjName(index,item){
    if(item)
    {
    var subObj=store.getValue(item,"subObj");
    return subObj.name;
    }
    }
    <div dojoType="dojo.data.ItemFileReadStore" jsId="store"  clearOnClose="true" ></div>
    <table dojoType="dojox.grid.DataGrid"  其他属性略 >
      <thead>
        <tr>
          <th field="name" width="200px">Name</th>
          <th field="address" width="200px">Address</th>
          <th get="subObjName" width="200px">subObjName</th>
        </tr>
     </thead>
    </table>
      

  3.   

    是的,可以这样做,这种方法可以用在显示序号,显示特殊控件,比如checkbox等,可能更有用。