Actionscript 3 如何在Flex的MXDataGrid行中显示工具提示?
我想知道如何显示每个数据网格行的工具提示,或者如何在工具提示中显示某些特定列的数据。如果您有一个数据网格,并且希望在鼠标上方显示特定于行的数据,下面是如何做到这一点的 第一步是为要启用此功能的每个DataGridColumn启用showDataTips属性 其次,您需要在DataGrid本身上有一个dataTipFunction函数。因为dataTipFunction将网格行数据作为对象传递给调用函数,所以不需要向其传递任何参数。这里有一个小例子,说明如何做到这一点Actionscript 3 如何在Flex的MXDataGrid行中显示工具提示?,actionscript-3,apache-flex,flash-builder,Actionscript 3,Apache Flex,Flash Builder,我想知道如何显示每个数据网格行的工具提示,或者如何在工具提示中显示某些特定列的数据。如果您有一个数据网格,并且希望在鼠标上方显示特定于行的数据,下面是如何做到这一点的 第一步是为要启用此功能的每个DataGridColumn启用showDataTips属性 其次,您需要在DataGrid本身上有一个dataTipFunction函数。因为dataTipFunction将网格行数据作为对象传递给调用函数,所以不需要向其传递任何参数。这里有一个小例子,说明如何做到这一点 <?xml versi
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="doInit();">
<mx:Script>
<!![CDATA[
import mx.collections.ArrayCollection; // this holds the grid data
[Bindable]
private var myData:ArrayCollection = new ArrayCollection();
private function doInit():void {
myData.addItem({fname:"Joe",lname:"Bloggs"});
myData.addItem({fname:"Joe1",lname:"Bloggs"});
}
private function buildToolTip(item:Object):String {
var myString:String = "";
if(item != null) {
myString = myString + "Firstname : " + item.fname + "\n";
myString = myString + "Lastname : " + item.lname + "\n";
}
return myString;
}
]]>
</mx:Script>
<mx:DataGrid id="dGrid" dataProvider="{myData}" visible="true" dataTipFunction="buildToolTip">
<mx:columns>
<mx:DataGridColumn dataField="fname" headerText="FirstName" showDataTips="true" />
<mx:DataGridColumn dataField="lname" headerText="LastName" showDataTips="true" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
资料来源:
以下是另一个来源的解释:
我使用了itemRollOver和itemRollOut事件。
在itemRollOver中,我们在行中找到对象的值,我们得到对象的标签,并将其设置为datagrid工具提示。
“项目”卷展栏的行为就像一个清洁器
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridItemRenderer;
import mx.events.ListEvent;
import mx.controls.ToolTip;
private function createToolTip(event:ListEvent):void {
var str:String = DataGridItemRenderer(event.itemRenderer).data.label;
dataGrid.toolTip = str;
}
private function deleteToolTip(obj:Object):void {
dataGrid.toolTip = null;
}
]]>
</mx:Script>
<mx:ArrayCollection id="arrColl">
<mx:source>
<mx:Array>
<mx:Object label="Student A" score="85" />
<mx:Object label="Student B" score="48" />
<mx:Object label="Student C" score="71" />
<mx:Object label="Student D" score="88" />
<mx:Object label="Student E" score="24" />
<mx:Object label="Student F" score="64" />
</mx:Array>
</mx:source>
</mx:ArrayCollection>
<mx:DataGrid id="dataGrid"
dataProvider="{arrColl}"
itemRollOut="deleteToolTip(event)"
itemRollOver="createToolTip(event)"
>
<mx:columns>
<mx:DataGridColumn dataField="label" />
<mx:DataGridColumn dataField="score" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
资料来源:
-如果您有一个DataGrid,并且希望在鼠标上方显示特定于行的数据,希望这对您有所帮助 第一步是为要启用此功能的每个DataGridColumn启用showDataTips属性 其次,您需要在DataGrid本身上有一个dataTipFunction函数。因为dataTipFunction将网格行数据作为对象传递给调用函数,所以不需要向其传递任何参数。这里有一个小例子,说明如何做到这一点
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="doInit();">
<mx:Script>
<!![CDATA[
import mx.collections.ArrayCollection; // this holds the grid data
[Bindable]
private var myData:ArrayCollection = new ArrayCollection();
private function doInit():void {
myData.addItem({fname:"Joe",lname:"Bloggs"});
myData.addItem({fname:"Joe1",lname:"Bloggs"});
}
private function buildToolTip(item:Object):String {
var myString:String = "";
if(item != null) {
myString = myString + "Firstname : " + item.fname + "\n";
myString = myString + "Lastname : " + item.lname + "\n";
}
return myString;
}
]]>
</mx:Script>
<mx:DataGrid id="dGrid" dataProvider="{myData}" visible="true" dataTipFunction="buildToolTip">
<mx:columns>
<mx:DataGridColumn dataField="fname" headerText="FirstName" showDataTips="true" />
<mx:DataGridColumn dataField="lname" headerText="LastName" showDataTips="true" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
资料来源:
以下是另一个来源的解释:
我使用了itemRollOver和itemRollOut事件。
在itemRollOver中,我们在行中找到对象的值,我们得到对象的标签,并将其设置为datagrid工具提示。
“项目”卷展栏的行为就像一个清洁器
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridItemRenderer;
import mx.events.ListEvent;
import mx.controls.ToolTip;
private function createToolTip(event:ListEvent):void {
var str:String = DataGridItemRenderer(event.itemRenderer).data.label;
dataGrid.toolTip = str;
}
private function deleteToolTip(obj:Object):void {
dataGrid.toolTip = null;
}
]]>
</mx:Script>
<mx:ArrayCollection id="arrColl">
<mx:source>
<mx:Array>
<mx:Object label="Student A" score="85" />
<mx:Object label="Student B" score="48" />
<mx:Object label="Student C" score="71" />
<mx:Object label="Student D" score="88" />
<mx:Object label="Student E" score="24" />
<mx:Object label="Student F" score="64" />
</mx:Array>
</mx:source>
</mx:ArrayCollection>
<mx:DataGrid id="dataGrid"
dataProvider="{arrColl}"
itemRollOut="deleteToolTip(event)"
itemRollOver="createToolTip(event)"
>
<mx:columns>
<mx:DataGridColumn dataField="label" />
<mx:DataGridColumn dataField="score" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
资料来源:
-希望这有助于添加Aarons答案,如果您只想在文本长度超过列宽时显示工具提示,则可以使用以下代码(基于滚动事件示例):
event.itemRenderer.width){
var str:String=DataGridItemRenderer(event.itemRenderer).data.label;
dataGrid.toolTip=str;
}
}
专用函数deleteToolTip(对象:对象):无效{
dataGrid.toolTip=null;
}
]]>
添加到Aarons应答中,如果只想在文本长度超过列宽时显示工具提示,则可以使用此代码(基于滚动事件示例):
event.itemRenderer.width){
var str:String=DataGridItemRenderer(event.itemRenderer).data.label;
dataGrid.toolTip=str;
}
}
专用函数deleteToolTip(对象:对象):无效{
dataGrid.toolTip=null;
}
]]>