我想问一下如何将链接放入数据网格。我的dataProvider是folling xml
<xml>
<item>
<name>A name</name>
<url>A url</name>
</item>
<item>
<name>Another name</name>
<url>Another url</name>
</item>
</xml>
确定还有更多项目。现在我想要一个显示名称作为标签的数据网格,当点击该行时,将打开该网址。
任何人都可以帮助我吗?我知道有关项目渲染的一些内容,但我不知道如何将URL提供给项目渲染器。也许有一个班级?但是,如何控制为特定项呈示器指定的URL?
提前致谢
塞巴斯蒂安
答案 0 :(得分:1)
您可以使用点击事件处理程序执行您想要的操作吗?
<mx:Script>
<![CDATA[
import flash.net.navigateToURL;
protected function datagrid1_clickHandler(event:MouseEvent):void
{
if(dg1.selectedItem)
{
var request:URLRequest = new URLRequest(dg1.selectedItem.url);
navigateToURL(request);
}
}
[Bindable]
public var xml:XML = new XML(<xml>
<item>
<name>A name</name>
<url>http://www.google.com</url>
</item>
<item>
<name>Another name</name>
<url>http://www.yahoo.com</url>
</item>
</xml>);
]]>
</mx:Script>
<mx:DataGrid id="dg1" editable="true" click="datagrid1_clickHandler(event)" dataProvider="{xml.children()}">
<mx:columns>
<mx:DataGridColumn dataField="name" />
</mx:columns>
</mx:DataGrid>
答案 1 :(得分:1)
我认为更好的方法是使用项呈示器:
使用如下项目渲染器配置数据网格:
<mx:DataGrid id="flashcardSetGrid" width="80%" maxHeight="800" >
<mx:columns >
<mx:DataGridColumn itemRenderer="com.jeshurunsoftware.DgLinkButton"/>
</mx:columns>
然后,创建一个MXML组件(在此示例中,打包在com.jeshurunsoftware.DgLinkButton.mxml中):
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
focusEnabled="true">
<mx:LinkButton id="lblData" label="{dataGridListData.label}" click="doSomething()" />
</s:MXDataGridItemRenderer>
单击此项目时,将执行您的操作。