flex datagrid Tab键事件
发布时间:2020-12-15 01:11:27 所属栏目:百科 来源:网络整理
导读:?xml version="1.0" encoding="utf-8"? s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" ?? ??? ??? ??? xmlns:s="library://ns.adobe.com/flex/spark" ?? ??? ??? ??? xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" ?? ??? ??? ??? xmlns:s="library://ns.adobe.com/flex/spark" ?? ??? ??? ??? xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> ?? ?<fx:Declarations> ?? ??? ?<!-- 将非可视元素(例如服务、值对象)放在此处 --> ?? ?</fx:Declarations> ?? ?<fx:Script> ?? ??? ? ?? ??? ?<![CDATA[ ?? ??? ? ?? ??? ?import mx.controls.Alert; ?? ??? ? ?? ??? ?import mx.collections.XMLListCollection; ?? ??? ? ?? ??? ? ?? ??? ? ?? ??? ?private var xml:XML = <root><vo column1='A1' column2='B1' column3='C1' column4='D1'/> ?? ??? ? ?? ??? ?<vo column1='A2' column2='B2' column3='C2' column4='D2'/> ?? ??? ? ?? ??? ?<vo column1='A3' column2='B3' column3='C3' column4='D3'/></root>; ?? ??? ? ?? ??? ?[Bindable] ?? ??? ? ?? ??? ?private var dp:XMLListCollection = new XMLListCollection(xml.vo); ?? ??? ? ?? ??? ?[Bindable] ?? ??? ? ?? ??? ?private var text1:String = ""; ?? ??? ? ?? ??? ?[Bindable] ?? ??? ? ?? ??? ?private var text2:String = ""; ?? ??? ? ?? ??? ? ?? ??? ? ?? ??? ?//------------------------- section 1 ---------------------- ?? ??? ? ?? ??? ?private function firstKeyDown(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try { ?? ??? ? ?? ??? ?//click tab ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.TAB && event.shiftKey){ ?? ??? ? ?? ??? ?end_1.setFocus(); ?? ??? ? ?? ??? ?return; ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.RIGHT || event.keyCode == Keyboard.DOWN){ ?? ??? ? ?? ??? ?comp_2.setFocus(); ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.UP) { ?? ??? ? ?? ??? ?comp_4.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?}???????????????????????? ? ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?private function secondKeyDown(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try { ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.RIGHT || event.keyCode == Keyboard.DOWN){ ?? ??? ? ?? ??? ?comp_3.setFocus(); ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.UP) { ?? ??? ? ?? ??? ?comp_1.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ? ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?private function thirdKeyDown(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try { ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.RIGHT || event.keyCode == Keyboard.DOWN){ ?? ??? ? ?? ??? ?comp_4.setFocus(); ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.UP) { ?? ??? ? ?? ??? ?comp_2.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ? ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?private function fouthKeyDown(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try {?????????????????????? ? ?? ??? ? ?? ??? ?//click tab ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.TAB && !event.shiftKey){ ?? ??? ? ?? ??? ?start_1.setFocus(); ?? ??? ? ?? ??? ?return; ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.RIGHT || event.keyCode == Keyboard.DOWN){ ?? ??? ? ?? ??? ?comp_1.setFocus(); ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.UP) { ?? ??? ? ?? ??? ?comp_3.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ? ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?//~------------------------- section 1 end---------------------- ?? ??? ? ?? ??? ? ?? ??? ? ?? ??? ? ?? ??? ? ?? ??? ?//------------------------- section 2 ------------------------ ?? ??? ? ?? ??? ?private function keydown11(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try { ?? ??? ? ?? ??? ? ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.RIGHT || event.keyCode == Keyboard.DOWN){ ?? ??? ? ?? ??? ?comp_22.setFocus(); ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.UP ?? ??? ? ?? ??? ?||(event.keyCode == Keyboard.TAB && event.shiftKey)) { ?? ??? ? ?? ??? ?dataGrid.setFocus(); ?? ??? ? ?? ??? ?dataGrid.editedItemPosition={columnIndex:dataGrid.columns.length-1,rowIndex:dataGrid.dataProvider.length-1}; ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?private function keydown12(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try { ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.RIGHT || event.keyCode == Keyboard.DOWN){ ?? ??? ? ?? ??? ?comp_23.setFocus(); ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.UP) { ?? ??? ? ?? ??? ?comp_21.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?private function keydown13(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try { ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.RIGHT || event.keyCode == Keyboard.DOWN){ ?? ??? ? ?? ??? ?comp_24.setFocus(); ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.UP) { ?? ??? ? ?? ??? ?comp_22.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?private function keydown14(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try { ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.RIGHT || event.keyCode == Keyboard.DOWN ?? ??? ? ?? ??? ?||(event.keyCode == Keyboard.TAB && !event.shiftKey)){ ?? ??? ? ?? ??? ?dataGrid.setFocus(); ?? ??? ? ?? ??? ?dataGrid.editedItemPosition={columnIndex:0,rowIndex:0}; ?? ??? ? ?? ??? ?return; ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.UP) { ?? ??? ? ?? ??? ?comp_23.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?private function keydownDataGrid(event:KeyboardEvent):void{ ?? ??? ? ?? ??? ?try{ ?? ??? ? ?? ??? ?var v:Object = dataGrid.editedItemPosition; ?? ??? ? ?? ??? ?var ti:TextInput = TextInput(dataGrid.itemEditorInstance); ?? ??? ? ?? ??? ?//tab ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.TAB){ ?? ??? ? ?? ??? ?if(!event.shiftKey){ ?? ??? ? ?? ??? ?if(v!=null && v.rowIndex ==dataGrid.dataProvider.length - 1 && v.columnIndex==dataGrid.columns.length-1){ ?? ??? ? ?? ??? ?start_2.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?}else{ ?? ??? ? ?? ??? ?if(v!=null && v.rowIndex == 0 && v.columnIndex==0){ ?? ??? ? ?? ??? ?end_2_1.setFocus() ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?if(event.keyCode == Keyboard.DOWN){ ?? ??? ? ?? ??? ?if(v.rowIndex < dataGrid.dataProvider.length-1){ ?? ??? ? ?? ??? ?v.rowIndex++; ?? ??? ? ?? ??? ?dataGrid.editedItemPosition = v; ?? ??? ? ?? ??? ?}else{ ?? ??? ? ?? ??? ?comp_21.setFocus(); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?}else if(event.keyCode == Keyboard.RIGHT){ ?? ??? ? ?? ??? ?if(v.columnIndex < dataGrid.columns.length - 1){ ?? ??? ? ?? ??? ?v.columnIndex++; ?? ??? ? ?? ??? ?dataGrid.editedItemPosition = v;????????????????????????????????????? ? ?? ??? ? ?? ??? ?} else { ?? ??? ? ?? ??? ?comp_21.setFocus(); ?? ??? ? ?? ??? ?}????????????????????????? ? ?? ??? ? ?? ??? ?} else if(event.keyCode == Keyboard.UP){ ?? ??? ? ?? ??? ?if(v.rowIndex==0){ ?? ??? ? ?? ??? ?comp_24.setFocus(); ?? ??? ? ?? ??? ?}else{ ?? ??? ? ?? ??? ?v.rowIndex --; ?? ??? ? ?? ??? ?dataGrid.editedItemPosition = v; ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?}else if(event.keyCode == Keyboard.LEFT){?????????????????????????????????? ? ?? ??? ? ?? ??? ?if(v.columnIndex == 0){ ?? ??? ? ?? ??? ?comp_24.setFocus();?????????????????????????????????????? ? ?? ??? ? ?? ??? ?}else{ ?? ??? ? ?? ??? ?v.columnIndex --; ?? ??? ? ?? ??? ?dataGrid.editedItemPosition = v; ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} catch(e:Error) { ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?private function dataGridFocusIn(event:FocusEvent):void{ ?? ??? ? ?? ??? ?try{ ?? ??? ? ?? ??? ?var ti:TextInput = TextInput(dataGrid.itemEditorInstance); ?? ??? ? ?? ??? ?if(ti){ ?? ??? ? ?? ??? ?text2 = ti.text; ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?}catch(e:Error){ ?? ??? ? ?? ??? ?trace(e.message); ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?} ?? ??? ? ?? ??? ?]]> ?? ??? ? ?? ?</fx:Script> ?? ? ?? ?<mx:Panel title="Tab键; Shift+Tab; 方向键切换界面元素例子" verticalGap="20" ?? ??? ??? ? ? ?? ??? ??? ?? width="100%" height="100%" paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10"> ?? ??? ? ?? ??? ?<mx:VBox width="100%" height="60" borderStyle="solid"> ?? ??? ??? ? ?? ??? ??? ?<mx:HBox width="100%" height="20"> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="Section One 循环切换:" fontSize="13"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Spacer width="50"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="{text1}" fontSize="13" fontWeight="bold" color="0xC42B25"/> ?? ??? ??? ??? ? ?? ??? ??? ?</mx:HBox> ?? ??? ??? ? ?? ??? ??? ?<mx:HBox width="100%" height="100%"> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Button id="start_1" width="1" height="1" label="a" tabEnabled="true" tabIndex="0"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:TextInput id="comp_1" text="First" tabEnabled="true" tabIndex="1" ?? ??? ??? ??? ??? ??? ??? ? ? ?? ??? ??? ??? ??? ??? ??? ?? keyDown="firstKeyDown(event)" width="100" focusIn="{text1=comp_1.text}"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="->"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Button id="comp_2" label="Second" tabEnabled="true" tabIndex="2" ?? ??? ??? ??? ??? ??? ?? ? ?? ??? ??? ??? ??? ??? ??? keyDown="secondKeyDown(event)" focusIn="{text1=comp_2.label}"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="->"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Button id="comp_3" label="Third" tabEnabled="true" tabIndex="3" ?? ??? ??? ??? ??? ??? ?? ? ?? ??? ??? ??? ??? ??? ??? keyDown="thirdKeyDown(event)" focusIn="{text1=comp_3.label}"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="->"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:TextInput id="comp_4" text="Fouth" tabEnabled="true" tabIndex="4" ?? ??? ??? ??? ??? ??? ??? ? ? ?? ??? ??? ??? ??? ??? ??? ?? keyDown="fouthKeyDown(event)" width="100" focusIn="{text1=comp_4.text}"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Button id="end_1" width="1" height="1" label="b" tabEnabled="true" tabIndex="5"/> ?? ??? ??? ??? ? ?? ??? ??? ?</mx:HBox> ?? ??? ??? ? ?? ??? ?</mx:VBox>????? ? ?? ??? ? ?? ??? ?<mx:VBox width="100%" height="100%" borderStyle="solid"> ?? ??? ??? ? ?? ??? ??? ?<mx:HBox width="100%" height="20"> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="Section Two 循环切换:" fontSize="13"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Spacer width="50"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="{text2}" fontSize="13" fontWeight="bold" color="0x21911D"/> ?? ??? ??? ??? ? ?? ??? ??? ?</mx:HBox> ?? ??? ??? ? ?? ??? ??? ?<mx:HBox width="100%" height="40"> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Button id="start_2" width="1" height="1" label="a" tabEnabled="true" tabIndex="10"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:TextInput id="comp_21" text="First" tabEnabled="true" tabIndex="11" ?? ??? ??? ??? ??? ??? ??? ? ? ?? ??? ??? ??? ??? ??? ??? ?? keyDown="keydown11(event)" width="100" focusIn="{text2=comp_21.text}"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="->"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Button id="comp_22" label="Second" tabEnabled="true" tabIndex="12" ?? ??? ??? ??? ??? ??? ?? ? ?? ??? ??? ??? ??? ??? ??? keyDown="keydown12(event)"? focusIn="{text2=comp_22.label}"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="->"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Button id="comp_23" label="Third" tabEnabled="true" tabIndex="13" ?? ??? ??? ??? ??? ??? ?? ? ?? ??? ??? ??? ??? ??? ??? keyDown="keydown13(event)" focusIn="{text2=comp_23.label}"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Label text="->"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:TextInput id="comp_24" text="Fouth" tabEnabled="true" tabIndex="14" ?? ??? ??? ??? ??? ??? ??? ? ? ?? ??? ??? ??? ??? ??? ??? ?? keyDown="keydown14(event)" width="100" focusIn="{text2=comp_24.text}"/> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:Button id="end_2_1" width="1" height="1" label="b" tabEnabled="true" tabIndex="15"/> ?? ??? ??? ??? ? ?? ??? ??? ?</mx:HBox> ?? ??? ??? ? ?? ??? ??? ?<mx:DataGrid id="dataGrid" keyDown="keydownDataGrid(event)" ?? ??? ??? ??? ??? ??? ? ?? ??? ??? ??? ??? ??? ? tabEnabled="true" tabIndex="16" focusIn="dataGridFocusIn(event)" ?? ??? ??? ??? ??? ??? ? ?? ??? ??? ??? ??? ??? ? dataProvider="{dp}" ?? ??? ??? ??? ??? ??? ? ?? ??? ??? ??? ??? ??? ? editable="true"> ?? ??? ??? ??? ? ?? ??? ??? ??? ?<mx:columns> ?? ??? ??? ??? ??? ? ?? ??? ??? ??? ??? ?<mx:DataGridColumn dataField="@column1" width="100" editable="true" headerText="Col1"/> ?? ??? ??? ??? ??? ? ?? ??? ??? ??? ??? ?<mx:DataGridColumn dataField="@column2" headerText="Col2" width="180" editable="true" textAlign="right"/> ?? ??? ??? ??? ??? ? ?? ??? ??? ??? ??? ?<mx:DataGridColumn dataField="@column3" headerText="Col3" width="110" editable="true" textAlign="right"/> ?? ??? ??? ??? ??? ? ?? ??? ??? ??? ??? ?<mx:DataGridColumn dataField="@column4" headerText="Col4" width="110" editable="true" textAlign="right"/>???? ? ?? ??? ??? ??? ??? ? ?? ??? ??? ??? ?</mx:columns> ?? ??? ??? ??? ? ?? ??? ??? ?</mx:DataGrid> ?? ??? ??? ? ?? ??? ??? ?<mx:Button id="end_2_2" width="1" height="1" label="b" tabEnabled="true" tabIndex="17"/> ? ?? ??? ??? ? ?? ??? ?</mx:VBox> ?? ??? ? ?? ??? ?<mx:Text text="非循环切换比较简单,对于第一个和最后一个界面元素不需要进行特殊处理,这里就省略Demo" fontSize="12"/> ?? ??? ? ?? ?</mx:Panel>????? ? </s:Application> http://wmcai.blog.163.com/blog/static/480242008101224142851/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |