我在 DOJO 1.8 和 Datagrid 上苦苦挣扎。我想将 filterSelect 放入 Datagrid 单元格中。小部件应由商店提供。商店由 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"}]
目标是选择框直观地显示“标签”字段并将“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。当我离开该字段时,它会正确格式化。
有谁知道如何解决这个问题?