2012-10-24 33 views
0

我很喜欢DOJO 1.8和Datagrid。我想将filteringSelect放入Datagrid单元格中。该小部件应该由商店提供。该商店由AJAX请求提供并进行查找。此外,选择小部件显示,但它是空的。有没有价值,也不是一个选项,在浏览器中看到:DOJO 1.8。在FileItemReadStore提供的DataGrid中筛选选择不起作用

了代号为商店:

 // 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"}] 

我们的目标是,选择框以可视方式显示“标签”字段,并将“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。当我离开字段时,它会正确格式化。

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

回答

0

好的!

我能找到解决方案。

首先,我更改为Memory-Store,因为我发现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”和“标签”的数据数组...所以它给了现场的属性!和BOOOOM ...它的作品!

现在我必须添加一个格式化函数来格式化它们被编辑的显示ID ID。

即将发布!

有一个好, AFX

+0

你能否提供更多细节? 像格式化程序的功能..? – Brij