dojo小例子13给Select指定id及label

用store为Select提供数据时,store中的数据必须带有id和label属性。实际情况是我们的数据格式多种多样,不一定带有id和label。这时可以用Select的labelAttr指定数据中的哪个属性作为label。但是只指定label不指定id,下拉菜单虽然可以显示出来,却无法选中。所以还必须指定一个属性作为id,用store的idProperty来指定id。Memory和JsonRest都有idProperty属性,但是直接给Select提供数据,显示出来的下拉菜单项是无序的,和数据的原始顺序不一致,所以还需要用ObjectStore包一下再给Select使用。

var json = new JsonRest({
	target: url
});

json.query().then(function(data) {
	var mem = new Memory({
		data: data,idProperty: "num" // data中的属性num作为id
	});
	var os = new ObjectStore({
		objectStore: mem
	});
	var select = new Select({
		name: "type",store: os,labelAttr: "name",// data中的属性name作为label显示
		style: "width: 150px;"
	},"div_type");
	select.startup();
});

相关文章

我有一个网格,可以根据更大的树结构编辑小块数据.为了更容易...
我即将开始开发一款教育性的视频游戏.我已经决定以一种我可以...
我正在使用带有Grails2.3.9的Dojo1.9.DojoNumberTextBox小部...
1.引言鉴于个人需求的转变,本系列将记录自学arcgisapiforja...
我正在阅读使用dojo’sdeclare进行类创建的语法.描述令人困惑...
我的团队由更多的java人员和JavaScript经验丰富组成.我知道这...