2011-03-07 4 views
1

데이터 그리드에서 항목을 드래그하고 드래그하는 동안 선택한 레코드의 모든 열을 드래그하여 볼 수 있습니다. 그러나 단 하나의 열 (어쩌면 레코드의 이름이나 ID) 만 표시하고 싶습니까? 이것을 달성 할 수있는 방법이 있습니까? 또한 드래그하는 동안 레코드 대신 아이콘이나 이미지를 표시 할 수 있습니까?드래그 앤 드롭 아이콘 질문

감사합니다.

답변

1

DataGridDragProxy 속성을 표시하도록 DataGrid를 확장하여이 작업을 수행 할 수 있습니다. working example에 대해서는 http://dgrigg.com/blog/2006/11/03/datagrid-drag-image/을 확인하십시오.

확장 된 데이터 그리드 :

<mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml"> 
    <mx:Script> 
     <![CDATA[ 
     import mx.controls.dataGridClasses.DataGridDragProxy; 
     import mx.core.IUIComponent; 

     /** 
     * @public 
     * class to use as DragProxy image 
     * set the default value to the standard DataGridDragProxy class 
     */ 
     [Bindable] 
     public var dragProxyImage: Class = DataGridDragProxy; 

     override protected function get dragImage():IUIComponent 
     { 
      var image:IUIComponent = new dragProxyImage(); 
      image.owner = this; 
      return image; 
     } 
     ]]> 
    </mx:Script> 
</mx:DataGrid> 

DataGrid에 사용 :

<controls:DataGrid 
    dataProvider="{dataSource}" 
    rowHeight="40" 
    dragEnabled="true" 
    height="140" 
    dragProxyImage="com.dgrigg.controls.CustomDragProxy" 
    allowMultipleSelection="true"> 

    <controls:columns> 
     <mx:DataGridColumn headerText="Image" dataField="image"> 
      <mx:itemRenderer> 
       <mx:Component> 
        <mx:Image source="{data.image}"/> 
       </mx:Component> 
      </mx:itemRenderer> 
     </mx:DataGridColumn> 
     <mx:DataGridColumn headerText="Product" dataField="name"/> 
     <mx:DataGridColumn headerText="Description" dataField="description"/> 
    </controls:columns> 
</controls:DataGrid> 
+0

했다 ...하지만 내가 드래그 된 항목을 배치하기 위해 많은 하드 코딩 변경했습니다 마우스 오른쪽 아래에 그러나 내 컴퓨터의 해상도가 변경되면 이는 또한 일관성이 없습니다. 그럼에도 불구하고, 나는 아이디어를 얻었고 어느 ​​정도 문제를 해결하고있다. 감사. – Tintin

+0

@ user503510, 걱정할 필요가 없습니다. 내 대답이 당신의 문제를 해결하는 데 도움이된다면, 받아 들인 대답과 upvote로 표시하는 것이 좋습니다. :) –