Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Dojo1.8。FileItemReadStore馈送的DataGrid中的FilteringSelect不工作_Json_Datagrid_Store_Dojo - Fatal编程技术网

Json Dojo1.8。FileItemReadStore馈送的DataGrid中的FilteringSelect不工作

Json Dojo1.8。FileItemReadStore馈送的DataGrid中的FilteringSelect不工作,json,datagrid,store,dojo,Json,Datagrid,Store,Dojo,我正在努力学习Dojo1.8和Datagrid。我想将filteringSelect放入Datagrid单元格。小部件应该由商店提供。存储由AJAX请求和works find提供。选择小部件也会出现,但它是空的。浏览器中既没有可查看的值,也没有可查看的选项: 商店的代码: // AJAX REQUEST TO GET PROJECTS AND SAVE AS STORE require(['dojo/request', 'dojo/data/ItemFileReadStore'],

我正在努力学习Dojo1.8和Datagrid。我想将filteringSelect放入Datagrid单元格。小部件应该由商店提供。存储由AJAX请求和works find提供。选择小部件也会出现,但它是空的。浏览器中既没有可查看的值,也没有可查看的选项:

商店的代码:

     // 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"}]
 {field: "project_id", name: "Kunde/Projekt", type: dojox.grid.cells._Widget, widgetClass: dijit.form.FilteringSelect, widgetProps: {searchAttr: "id", labelAttr: "label", store: projectStore}},
目标是选择框直观地显示“标签”字段,并将“id”保存到存储/网格

以下是单元格的网格布局代码:

{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”。所以我就这么做了

布局变量中的我的字段如下所示:

[{"id":2,"name":"Bilder-App","customer":"Company A","label":"Company A >> Bilder-App"},{"id":8,"name":"Zeiterfassung","customer":"Company B","label":"Company B >> Zeiterfassung"}]
 {field: "project_id", name: "Kunde/Projekt", type: dojox.grid.cells._Widget, widgetClass: dijit.form.FilteringSelect, widgetProps: {searchAttr: "id", labelAttr: "label", store: projectStore}},
我的存储有一个由字段“id”和“label”组成的数据数组……因此它为字段提供了这些属性!哎哟……真管用

现在,我必须添加一个格式化程序函数,以便在编辑显示的ID后对其进行格式化

关于这一点很快发布

祝你过得愉快,
AFX

你能提供更多关于这方面的细节吗??像格式化程序函数?