你的位置:首页 > Java教程

[Java教程]dijit.form.Select 基本用法


dijit.form.Select

1)创建:

var division = new dijit.form.Select({
id: "Division",//id必须唯一
name: 'Division',
intermediateChanges: "false",
iconClass: "dijitNoIcon",
emptyLabel: " ",
scrollOnFocus: "true",
autoWidth: "true",
style: "width:150px;",

sortByLabel: false,  //默认会根据label进行排序,设为false可保证原有顺序
options: [
{ label: '山东', value: '山东', selected: true },//默认选中该项
{ label: '河北', value: '河北' },
{ label: '天津', value: '河北' }
]

        }).placeAt(td22);//设置显示的位置,这里为table中的一个单元格;也可通过division .placeAt(td22);设置

 

2)通过Store创建

function GetRegionStore(dataType) {
switch (dataType) {
case "山东":
var store = new dojo.data.ItemFileReadStore({
data: {
identifier: 'id',
label: 'name',
items: [
{ name: "济南", id: "济南" },
{ name: "青岛", id: "青岛" },
{ name: "济宁", id: "济宁" },
{ name: "潍坊", id: "潍坊" }
]
}
});
return store;
......
}
}

var store = GetRegionStore("山东");
dijit.byId("Division").set("store", store);

 

3)绑定事件

var selector = dijit.byId("Division");
selector.on("change", function () {
//To Do Code
});

dojo.connect(dijit.byId("Division"), "onChange", function (newValue) {
//To Do Code
 });

 

注意:

两种方式中,事件名称的区别;

注意注册事件时事件名对大小写敏感;

dojo.byId 取到的是dom节点,dijit取到的是widget元素;dom节点不能用来绑定事件;

绑定事件的代码可放在声明组件的代码之后,不必考虑元素是否已经加载到页面中,未加载的话是否会无法注册(初学者,具体原理不太明白,多次试验后确定如此)。

 

4)获取/设置

var value = selector.get('value');

selector.set('value', selectedDivision);

selector.att('value', selectedDivision);

两种设置方法均有效,也都可以触发onChange事件,之间的区别尚不清楚。

 

问题:

下拉列表中,文字的字体大小和选中后文本框内的不同,需要如何控制?