2017-05-11 321 views
0

Flex專家,如何將列值傳遞到AdvancedDataGridColumn中的dataTipFunction Flex

我是新手在這裏。我正在嘗試爲我的聯繫人詳細信息屏幕創建條件工具提示。如果聯繫人具有「ABC,XYZ」這樣的「特殊角色」,那麼工具提示應該不會出現。我們有AdvancedDataGridColumn並使用dataTipFunction來顯示工具提示。

我在傳遞所有聯繫人對象的dataProvider中的角色值&'special-roles'。 我需要爲每行(每個聯繫人)編寫工具提示條件。我無法在dataTipFunction中寫入條件,因爲它只能訪問'item'對象。我在'項目'上嘗試了跟蹤和警報,但屏幕一片空白。

我也試過「showDataTips」,它接受布爾值但無濟於事。我需要一種方法將當前行值(所有列)傳遞給AdvancedDataGridColumn中的函數。

這是我的代碼的快照。任何幫助非常感謝:)

<view:CopyPasteDataGrid id="contactsHolder" 
        width="100%" 
        height="100%" 
        displayDisclosureIcon="true" 
        variableRowHeight="true" 
        defaultLeafIcon="{null}" 
        folderClosedIcon="{null}" 
        folderOpenIcon="{null}" 
        useRollOver="true" 
        selectable="true" 
        styleName="PortfolioAdvanced" 
        designViewDataType="tree" 
        horizontalCenter="true" 
        verticalGridLines="false" 
        horizontalScrollPolicy="off" 
        dataProvider="{contactDetails}" 
        headerRelease="onHeaderRelease(event)"> 
    <view:columns> 
     <mx:AdvancedDataGridColumn dataField="lastName" 
            sortCompareFunction="lastNameCompare" 
            headerText="{ApplicationConstants.LAST_NAME_HEADER}" 
            showDataTips="true" dataTipFunction="buildToolTipForContact" 
            width="100"/> 
    <view:rendererProviders> 
     <mx:AdvancedDataGridRendererProvider dataField="projectContacts" 
              renderer="com.ihg.hom.common.view.components.render.ContactsRenderer" 
              columnIndex="0" 
              columnSpan="0"/> 
    </view:rendererProviders> 
</view:CopyPasteDataGrid> 


private function buildToolTipForContact(item:Object):String 
     { 
      var myString:String=""; 

      return "hello"; 
     } 
+0

難道你沒有得到你的數據對象作爲項目?然後你可以檢查你的數據對象是否包含你的特殊角色並顯示一個工具提示,否則返回「」? – Philarmon

+0

每當我訪問** item.something **屏幕變爲空白。我需要當前的聯繫屬性(名稱,角色等)在buildToolTipForContact()函數中構建工具提示 –

回答

1

我已經解決了它使用不同的方法。我使用標籤功能。它可以訪問列對象和基於當前對象角色,我正在設置工具提示。這裏是供參考的代碼。

<mx:AdvancedDataGridColumn dataField="role" sortable="{isRoleSortable}" 
             labelFunction="getRole" 
             headerText="Role" sortCompareFunction="sortRole" showDataTips="true" dataTipFunction="buildToolTipForContact" 
             width="120"/> 
private var hasRole:Boolean=false; 

private function getRole(item:Object):String 
{ 
    // extra code 
    if(currentRoles.indexOf(specialRole)!=-1) 
    { 
     hasRole=true; 
    } 

} 
private function buildToolTipForContact(item:Object):String 
      { 

      var myStr:String=""; 
       if(hasRole){ 
        myStr="Special Role"; 
       } 

       return myStr; 
      }