ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   超ビギナー
     [DataGrid]ドラッグ&ドロップにて行を移動した後のdataProviderの値
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
imari
投稿日時: 2008-3-28 17:12
お馴染みさん
登録日: 2007-2-9
居住地:
投稿: 19
[DataGrid]ドラッグ&ドロップにて行を移動した後のdataProviderの値
お世話になります、imariです。

DataGridでドラッグ&ドロップにて行を移動した後のdataProviderの値の取得方法をご教示頂けないでしょうか?

現在は下記ソースでやっているのですが、dragComplete時にdataProviderの値を取得すると、移動した行が移動前と移動後の場所に存在する形となっています。
ただし、dragCompleteから抜けると(?)正しい値になります。(ボタンを押下してみてください。)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application width="100%" height="100%" xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
			import mx.managers.DragManager;
			import mx.events.DragEvent;
			import mx.controls.Alert
			
			[Bindable] private var objNames:Object = [
				{SORTNO:1, NAME:"ライオン"},
				{SORTNO:2, NAME:"ペンギン"},
				{SORTNO:3, NAME:"キリン"},
				{SORTNO:4, NAME:"ゾウ"}
			];
			
			//ドラッグ&ドロップ後の処理
			private function dComp(event:DragEvent):void{
				if(event.action != DragManager.NONE){
					event.action = DragManager.MOVE;
				}
				var a:String = "";
				for(var i:int=0; i<dg.dataProvider.length; i++){
					a += (i+1).toString() + " >> " + dg.dataProvider[i].SORTNO + "\n";
				}
				Alert.show(a);
	 		}
	 		
	 		private function clickBtn():void{
				var a:String = "";
				for(var i:int=0; i<dg.dataProvider.length; i++){
					a += (i+1).toString() + " >> " + dg.dataProvider[i].SORTNO + "\n";
				}
				Alert.show(a);
	 		}
	 		
		]]>
	</mx:Script>
	
	<mx:DataGrid id="dg" dataProvider="{objNames}" editable="false" 
			dragEnabled="true" dropEnabled="true" dragMoveEnabled="true" dragComplete="dComp(event)">
		<mx:columns>
			<mx:Array>
				<mx:DataGridColumn dataField="SORTNO" headerText="順番" textAlign="center"/>
				<mx:DataGridColumn dataField="NAME" headerText="名前"/>
			</mx:Array>
		</mx:columns>
	</mx:DataGrid>
	<mx:Button label="ボタン" click="clickBtn()"/>
</mx:Application>

Pepe
投稿日時: 2008-3-28 17:22
モデレータ
登録日: 2006-1-10
居住地:
投稿: 1274
Re: [DataGrid]ドラッグ&ドロップにて行を移動した後のdataProviderの値
FlexBuilder3 を使っていますが
SDKを Flex 2.0.1(Hotfix3) にしても、Flex 3 にしても
再現しないです...^_^;

# ドロップコンプイベントでアイテム5個
# ある状態になるんですよね??

お使いの SDK のバージョンは何でしょう (・・?


----------------

imari
投稿日時: 2008-3-28 17:30
お馴染みさん
登録日: 2007-2-9
居住地:
投稿: 19
Re: [DataGrid]ドラッグ&ドロップにて行を移動した後のdataProviderの値
Pepeさん

引用:
# ドロップコンプイベントでアイテム5個
# ある状態になるんですよね??


その通りです。
例えば、順1を3と4の間に移動すると、
1,2,3,1,4 とアイテムが5個ある状態になります。

dragCompleteの後のイベントがあればそれで正常な値が拾えるのかな?と思ったのですが、なさそうだったので・・・

引用:
お使いの SDK のバージョンは何でしょう (・・?

Hotfixが分かりませんが、
2.0.160522
となっていました。
dsh
投稿日時: 2008-3-29 0:59
ご主人様
登録日: 2006-3-29
居住地: 東京
投稿: 296
Re: [DataGrid]ドラッグ&ドロップにて行を移動した後のdataProviderの値
imariさん、こんにちは。

貼って頂いたソースを試してみたんですが、
Flex 2.0.1 Hotfix 3(180927)では再現しなかったです。
もしかしたらもう直っているバグなのかもしれません。
新しめのバージョンのFlex SDKで試してみるのが良いのではないでしょうか。
imari
投稿日時: 2008-4-1 10:02
お馴染みさん
登録日: 2007-2-9
居住地:
投稿: 19
Re: [DataGrid]ドラッグ&ドロップにて行を移動した後のdataProviderの値
Pepeさん、dshさん

お返事遅れ申し訳ございません。
ご調査ありがとうございます。
バージョンをあげて試してみます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を