和
請注意:行數是單選,是以資料源為:type="radio"。隐藏列為多選,為type="check"。(參考Menu的幫助文檔)
資料源代碼(Menu元件的規定格式就是這樣的,如有疑問,請參考幫助文檔Menu篇):
<mx:XML id="xmlDP">
<root>
<node label="行數" >
<node label='10' type="radio" groupName="radioGroup" toggled="true"/>
<node label='15' type="radio" groupName="radioGroup" />
<node label='30' type="radio" groupName="radioGroup"/>
<node label='50' type="radio" groupName="radioGroup"/>
</node>
<node label="隐藏列">
<node label="登入名稱" type="check" value="1"/>
<node label="全名" type="check" value="2"/>
<node label="組織代号" type="check" value="3"/>
<node label="狀态" type="check" value="4"/>
<node label="角色設定" type="check" value="5"/>
</node>
</root>
</mx:XML>
元件代碼:
<mx:PopUpButton label="其它" id="pub" width="10%" creationComplete="creatMenu()"/>
AS代碼:
//生成彈出菜單(隐藏列和顯示條數)
private function creatMenu():void{
var menu:Menu = new Menu();
menu.labelField = "@label";
menu.dataProvider = xmlDP;
menu.showRoot = false;
menu.width = 100;
menu.addEventListener("itemClick",ick);//為itemClick添加監聽函數(事件是這樣引用的)
pub.popUp = menu;
}
//點選隐藏列和顯示條數的menu時,響應函數
private function ick(evt:MenuEvent):void{
var str:String = [email protected];
//頁面大小改變事件
if(str.match(/^[0-9]+$/)){//使用正規表達式來判斷此字元串是否包含數字
pageSize = int(str);//将str轉換成int類型
this.height=setHeight(pageSize);
loadData(0);
}else{
var d:DataGridColumn = null;//聲明一個DataGridColumn對象
switch(int([email protected])){//根據value屬性判斷屬于哪個列
case 1:
d = logname; logname是列的ID
break;
case 2:
d = fullname;
break;
case 3:
d = orgid;
break;
case 4:
d = status;
break;
default:
d = role;
}
//設定隐藏或顯示
if(d.visible == true){
d.visible = false;
} else{
d.visible = true;
}
}