1

XML dataProvider を持つ AdvancedDataGrid があります。ドラッグ アンド ドロップが有効で、ADG の表示されている行内で機能します。

ただし、アイテムをADGの一番下の表示行を超えてドラッグしようとすると、ADGはスクロールして次の行を表示しないため、すぐに表示される行を超えてドラッグアンドドロップすることはできません. これはデータグリッドの論理的なデフォルト動作 (一番下までドラッグし、ドラッグし続けると後続の行が表示される) のように見えますが、Flex は明らかにそのようには動作しません。これをプログラムで実装する方法に困惑しています。

誰でも助けることができますか?

4

3 に答える 3

2

過去にいくつかのアイテムでこれを行う必要がありました。基本的には、DG でマウスの Y 位置を監視することでした。上または下から 50 ピクセル以下の場合は、DG += の垂直スクロール位置を設定します。必要に応じて 20 または -= 20。

コード スニップが必要な場合はお知らせください。ただし、これらすべてを行う方法を理解できるはずです。

于 2010-05-26T15:34:33.100 に答える
1

フレックスが大好きになりました。明白なものに膨大な時間がかかる場所。

だから、これは私がやったことです:

mygrid.addEventListener( DragEvent.DRAG_OVER, handleDragOver);



public function handlerDragOver(event:DragEvent):void{
var dropIndex:int        = mygrid.calculateDropIndex(event);
var rowsDisplayed:Number = mygrid.rowCount;
var topvisibleIndex:int  = mygrid.verticalScrollPosition;
var botvisibleIndex:int  = topvisibleIndex + rowsDisplayed;


if ( dropIndex <= topvisibleIndex) {

    mygrid.verticalScrollPosition = Math.max( mygrid.verticalScrollPosition- 1, 0 );

} else if( dropIndex >= botvisibleIndex - 1 ){

mygrid.verticalScrollPosition += 1;
}

}
于 2010-10-11T07:30:04.533 に答える