2012-05-10 21 views
0

這裏有一個獨立的應用程序可以運行,說明我的問題。在Flex spark DataGrid中使用LinkBut​​ton來顯示可點擊的URL時,如果URL的列寬太短(即可能由用戶調整),則顯示的URL文本會進入其相鄰列。如果您運行下面的代碼,這裏就是你會看到:軟硬度:顯示在Spark DataGrid中運行URL鏈接到相鄰列

enter image description here

任何人都知道如何改善呢?理想情況下,URL文本將被截斷以適合其列寬,並且每當發生截斷時都會顯示工具提示(例如類似於火花標籤屬性showTruncationTip="true")。人們在實踐中做了什麼?

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    minWidth="300" minHeight="300"> 
    <fx:Declarations> 
    <!-- Define the data --> 
    <fx:XMLList id="siteList"> 
     <site> <name>IMDB</name> <url>http://www.imdb.com</url> </site> 
     <site> <name>BoardgameGeek</name> <url>http://www.boardgamegeek.com</url> </site> 
     <site> <name>Yahoo! Finance</name> <url>http://finance.yahoo.com</url> </site> 
    </fx:XMLList> 
    <!-- Use an XMLListCollection for the Spark DataGrid --> 
    <s:XMLListCollection id="siteList2" source="{siteList}"/> 
    </fx:Declarations> 
    <s:layout> <s:VerticalLayout/> </s:layout> 
    <s:Panel title="Spark DataGrid Links" width="300" height="300" 
     horizontalCenter="0" verticalCenter="0"> 
    <s:DataGrid id="sparkDataGrid" 
     width="100%" height="100%" 
     dataProvider="{siteList2}"> 
     <s:columns> 
      <s:ArrayList> 
       <s:GridColumn dataField="url" headerText="URL" width="150" itemRenderer="myItemRenderer"/> 
       <s:GridColumn dataField="name" headerText="Name"/> 
      </s:ArrayList> 
     </s:columns> 
    </s:DataGrid> 
    </s:Panel>  
</s:Application> 

和文件名爲myItemRenderer.mxml(位於同一目錄下)是:

<?xml version="1.0" encoding="utf-8"?> 
    <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" > 

    <s:HGroup height="25" verticalAlign="middle" horizontalAlign="left"> 
    <mx:LinkButton label="{data.url}" 
     textDecoration="underline" 
     textRollOverColor="0x7777FF" 
     click="navigateToURL(new URLRequest(data.url))" 
     width="100%" 
     labelPlacement="left" 
     color="0x0000DD"/>  
    </s:HGroup> 
</s:GridItemRenderer> 

回答

2

一個辦法改善這種 - 不會截斷和工具提示顯示爲desired--在GridItemRenderer中將clipAndEnableScrolling設置爲true

<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    clipAndEnableScrolling="true"> 

這將強制鏈接不超過其允許的視口,因此文本不會掩蓋您的其他列文本。在幾分鐘的實驗中,我無法強制它截斷並顯示在工具提示上。

+0

這是一個很大的改進。感謝Sam!這基本上處理了截斷部分。 – ggkmath

+0

@ggkmath如果你願意,你可以隨時在LinkBut​​ton MXML中添加'tooltip =「{data.url}」'來顯示工具提示。 –

+0

確實如此,但是它始終開啓(即使不需要)。不過謝謝。你的一半解決方案是必須的,而工具提示是一個很好的功能。 – ggkmath