1
我從數據網格拖動項目並拖動時,可以看到所選記錄中的所有列正在被拖動。但是,我只想顯示一列(可能是記錄的名稱或ID)?有沒有辦法做到這一點?另外,拖動時可以顯示圖標或圖像而不是記錄。拖放圖標問題
謝謝你們。
我從數據網格拖動項目並拖動時,可以看到所選記錄中的所有列正在被拖動。但是,我只想顯示一列(可能是記錄的名稱或ID)?有沒有辦法做到這一點?另外,拖動時可以顯示圖標或圖像而不是記錄。拖放圖標問題
謝謝你們。
這可以通過擴展DataGrid來公開DataGridDragProxy
屬性來完成。查看http://dgrigg.com/blog/2006/11/03/datagrid-drag-image/,獲取working example。
擴展的DataGrid:
<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>
這工作...但我不得不做出,以便將所拖動的項目很多硬編碼的變化在鼠標正確的位置。但是,如果我的電腦的分辨率發生變化,這也是不一致的。但是,儘管如此,我明白了這一點,並在某種程度上解決了這個問題。謝謝。 – Tintin 2011-03-10 21:18:13
@ user503510,別擔心。如果我的答案有助於解決您的問題,請注意標記爲已接受的答案和優惠政策。 :) – 2011-03-10 21:27:23