我試圖將圖像添加到在flex中動態呈現的datagrid項目中。在flex數據網格中使用圖像項呈現
這裏是我的DataGrid代碼
「STR」在getImagePath函數的值是正確的。
<?xml version="1.0" encoding="utf-8"?>
<mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml"
doubleClickEnabled="true">
<mx:Script>
<![CDATA[
private function userLabelFunction(item:Object, column:DataGridColumn):String
{
return item.user.username;
}
private function getImagePath(item:Object, column:DataGridColumn):String
{
var str:String=item.track["artwork-url"]
if (str == "")
{
str=item.user["avatar-url"];
}
return str;
}
]]>
</mx:Script>
<mx:columns>
<mx:DataGridColumn dataField="artwork-url"
headerText="Art"
itemRenderer="components.content.contents.datagrids.ImageRenderer"
labelFunction="getImagePath"/>
<mx:DataGridColumn dataField="title"
headerText="Title"
minWidth="100"/>
<mx:DataGridColumn dataField="user"
headerText="User"
labelFunction="userLabelFunction"/>
<mx:DataGridColumn dataField="bpm"
headerText="BPM"/>
</mx:columns>
</mx:DataGrid>
我不能設法獲取圖像的URL值進入我的項目渲染
我試圖重寫組數據屬性,像這樣
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
height="60"
verticalAlign="top"
creationComplete="init()">
<mx:Script>
<![CDATA[
import components.content.contents.containers.ContentContainerSoundCloud;
import mx.core.Application;
import mx.controls.dataGridClasses.DataGridColumn;
import com.adobe.viewsource.ViewSource;
[Bindable]
public var imgPath:String;
private function init():void
{
}
override public function set data(value:Object):void
{
super.data = value.track["artwork-url"];
imgPath =super.data.valueOf()
trace(imgPath)
}
]]>
</mx:Script>
<mx:Image source="{imgPath}" id="rowimage"/>
</mx:HBox>
但這樣做跟蹤輸出外觀像這樣
<artwork-url>
<mx_internal_uid>7C98E149-1984-584C-7600-AD8940BF2A9C</mx_internal_uid>
</artwork-url>
我期待設置數據中的「值」屬性來接收s特林我從get imagePathFunction發送它,但它實際上返回我的整個XMLList。
我在做什麼錯?
嘿flextras。我似乎在這裏錯過了一些有趣的東西。在我的getimagepath標籤函數中,傳入的對象來自數組集合。我所說的函數中的str變量被設置爲我想要的值。我預計設置數據中的值是該字符串,但它是該數據網格行索引的數組集合的一部分。標籤功能有什麼意義嗎? – dubbeat 2010-07-07 16:23:56
我沒有注意到這一點,但我很確定itemRenderers和labelFunctions是相互排斥的。 itemRenderer需要注意。 傳遞給labelFunction的對象應該是dataProvider中的一個對象。傳遞給你的itemRenderer的數據對象也將是同一個對象。 將getImagePath處理移到itemRenderer中,並將該函數的結果用作圖像的源。 – JeffryHouser 2010-07-07 17:11:26
是的,這樣做:) Thankyou爲您的輸入 – dubbeat 2010-07-08 07:21:36