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