Dojo过滤选择。如何将displayedValue而不是索引传递给我的服务器

时间:2010-06-17 10:07:35

标签: dojo

如何获得value == displayedValue可能更好地回答了这个问题。或者我如何防止值为基于索引,而是使用我在商店中提供的文本字符串。

我的Json有这样的结构:

{ “项”:[{ “zipcity”: “Stocka”},{ “zipcity”: “Stockamöllan”},{ “zipcity”: “Stockaryd”}]}

是否需要改变?

目前这是我的过滤选择代码:

postadressStore = new dojox.data.QueryReadStore({url:“LKP.json”});         postadressStore.fetch({serverQuery:{name:''},queryOptions:{ignoreCase:true}});

    new dijit.form.FilteringSelect({
        store: postadressStore,
        hasDownArrow: false,
        autoComplete: false,
        searchAttr: "zipcity",
        style: "width: 290px;",
        name:"postadress",
        id: "postadress_id",
        validate: function() { return true;}
        },"postadress");

我尝试过更改值,但值是只读的吗?

var elm = dijit.byId(“postadress_id”);     var val = elm.attr('displayedValue');     elm.attr( '值',VAL);

1 个答案:

答案 0 :(得分:0)

postadressStore.getIdentity = function(item) {
    return item.i.zipcity;          
}

是必需的补充。这使得商店集合标识等于每个帖子的价值。

同时获取也是不必要的。

postadressStore.fetch({serverQuery:{name:''}, queryOptions:{ignoreCase:true}}); 

可以删除

所以商店的完整初始化应该是:

var postadressStore = new dojox.data.QueryReadStore({url: "LKP.json"});
postadressStore.getIdentity = function(item) {
return item.i.zipcity;          
}