Dojo 1.8.FileTemReadstore喂养的DataGrid中的FilterSelect无法正常工作



我正在用dojo 1.8和datagrid挣扎。我想将FilterSelect放入数据杂志单元中。小部件应由商店喂养。该商店由Ajax请求提供,并找到了工作。另外,选择的小部件出现了,但它是空的。在浏览器中既没有值,也没有选项:

商店的代码:

     // AJAX REQUEST TO GET PROJECTS AND SAVE AS STORE
 require(['dojo/request', 'dojo/data/ItemFileReadStore'], function(request, ItemFileReadStore){
    request('project/json/getprojects', {
        handleAs: 'json'
    }).then(function(json){
       var projectStore = new ItemFileReadStore({data: {'identifier':'id', 'label':'label', 'items': json}});   
    });

我检索的JSON看起来像这样:

[{"id":2,"name":"Bilder-App","customer":"Company A","label":"Company A >> Bilder-App"},{"id":8,"name":"Zeiterfassung","customer":"Company B","label":"Company B >> Zeiterfassung"}]

目标是Select-Box以视觉上显示"标签"字段,并将" ID"保存到商店/网格。

这是单元格的grid_layout的代码:

{field: "project_id", name: "Kunde/Projekt", type: dojox.grid.cells._Widget, widgetClass: dijit.form.Select, widgetProps: {store: projectStore,  searchAttr: "label"} },

有人可以帮助我吗?

非常感谢!

afx


这是工作格式:

  // PROJECT-ID FORMATTER
     function formatProjectId(value, index){ 
            var item =  projectStore.get(value);
            var label = item['label'];  
             return label; 
      }     

但是,有一个微小的问题:当我在选择框中选择项目时,它显示了字段中的ID。当我离开场地时,它得到了正确的格式。

有人知道如何解决这个问题吗?

好!

我能够找到解决方案。

首先,我更改为内存店,因为我发现itemfilereadstore无法正常工作。

我在某处阅读,您需要特别需要" dijit/form/filteringSelect"。所以我做到了。

所以我的布局变量中的字段看起来像:

 {field: "project_id", name: "Kunde/Projekt", type: dojox.grid.cells._Widget, widgetClass: dijit.form.FilteringSelect, widgetProps: {searchAttr: "id", labelAttr: "label", store: projectStore}},

我的商店中有一系列数据由字段" ID"one_answers"标签"组成...因此它赋予了这些属性!和boooom ...它有效!

现在,我必须添加一个格式化函数以格式化它们已编辑的显示的ID符号。

很快就会发布!

有一个很好的afx

最新更新