dojo 无法用数据存储/内存内存存储填充dijit/form/select

1mrurvl1  于 2022-12-20  发布在  Dojo
关注(0)|答案(1)|浏览(164)

我使用的是dojo版本1.14.2和dstore版本1.1.2,我试图用内存存储填充select,但select仍然是空的。
我使用的类是:“数据存储/内存”,“数据存储/旧版/数据存储适配器”,“dijit/窗体/选择”
我尝试使用以下代码填充select:

GetJobCategoriesConfirm: function (data, msg) {
            if (msg === "ok") {
                JobCategoryStore = new Memory({ data: data.JobCategoriesGetResult, idProperty: "Category" });
                this.selectJobCategory.set("labelAttr", "Category");
                this.selectJobCategory.setStore(JobCategoryStore);
                //this.selectJobCategory.set("store", JobCategoryStore); //doesnt work either

            }
            else {
                alert(msg);
            }
        }

我已经确认了我从函数中获取的数据是json格式的(有14条记录),store对象看起来不错,select的名称正确,数据存储中的列的名称正确,CategoryID是一个字符串。没有抛出错误,只是select没有被数据填充。有什么想法吗?
谢啦,谢啦
皮特

lmvvr0a8

lmvvr0a81#

Penn站点给出了答案:https://github.com/SitePen/dstore/blob/master/docs/Adapters.md
我需要实现DstoreAdaptor,这样dstore就可以用作遗留的dojo/store。新代码如下:

GetJobCategoriesConfirm: function (data, msg) {
            if (msg === "ok") {
                JobCategoryStore = new Memory({ data: data.JobCategoriesGetResult, idProperty: "Category" });
                var adaptedStore = new DstoreAdapter(JobCategoryStore); 
                this.selectJobCategory.set("labelAttr", "Category");
                this.selectJobCategory.setStore(adaptedStore);

            }
            else {
                alert(msg);
            }
        },

相关问题