DOJO1.8とDatagridに苦労しています。filteringSelectを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;
}
ただし、わずかな問題が1つあります。選択ボックスでアイテムを選択すると、フィールドにIDが表示されます。フィールドを離れると、正しくフォーマットされます。
誰かがこれを解決する方法を知っていますか?