Json Dojo1.8。FileItemReadStore馈送的DataGrid中的FilteringSelect不工作
我正在努力学习Dojo1.8和Datagrid。我想将filteringSelect放入Datagrid单元格。小部件应该由商店提供。存储由AJAX请求和works find提供。选择小部件也会出现,但它是空的。浏览器中既没有可查看的值,也没有可查看的选项: 商店的代码: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'],
// 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你能提供更多关于这方面的细节吗??像格式化程序函数?