2009-09-16 2 views
0

У меня есть Flex DataGrid, в котором есть несколько столбцов, я поместил элемент renderer, который делает все элементы в этом столбце гиперссылкой, у меня есть требование, где мне нужно видеть тип пользователя, на основе которого я должен либо включить, либо отключить гиперссылку.Как стилизовать каждую ячейку Flex DataGrid

Есть ли хороший способ, где я могу получить свойства стиля на уровне ячейки ...?

Я искал, но не очень помог .. !!

+0

Вы должны добавить тег/информацию о том, с какой технологией вы работаете (.NET, ASP.NET, VB6, .. whatever ..) – awe

+0

Santosh уже установил гибкий тег, то есть adobe flex. – michael

+0

Сантош, как насчет того, чтобы вы делали оператор if в рендеринге элемента, чтобы проверить тип пользователя, а затем включить или отключить гиперссылку. – michael

ответ

1

Привяжите свойство data элемента рендеринга элемента (или установите прослушиватель), чтобы он отключил гиперссылку при изменении. Свойство data изменяется каждый раз, когда ячейка получает новые данные для рендеринга.

Вот пара возможностей.

class User { 
    public var type:String; 
} 

<mx:Panel ... 

    <mx:Component id="simple"> 
    <mx:Label styleName="{data.type}"></mx:Label> 
    </mx:Component> 

    <mx:Component id="userRenderer"> 
    <mx:Label dataChange="onChange(event)"> 
     <mx:Script> 
     <![CDATA[ 
      private function onChange(event:FlexEvent) { 
      // do something 
      } 
     ]]> 
     </mx:Script> 

    </mx:Label> 
    </mx:Component> 

    <mx:DataGrid ...> 
    <mx:columns> 
     <mx:DataGridColumn itemRenderer="userRenderer" /> 
    </mx:columns> 
    </mx:DataGrid> 
</mx:Panel> 

с минимальным фрагментом кода, пример может быть более подходящим, но вы должны быть в состоянии приспособить это.

+0

Спасибо Chadwick за ур усилие и код, я адаптирую код ур, позвольте мне посмотреть, как это происходит ... я буду держать здесь обновленный. – 2009-09-17 05:45:28

+0

Chadwick, но еще одна вещь, в onChange(), можем ли мы получить данные других строк ..? А также, как получить свойства стиля ... для данных ячейки ..? – 2009-09-18 10:28:00

+0

В «простом» компоненте я устанавливаю styleName компонента, используемого для рендеринга ячейки (Label). В этом примере вам понадобится стиль в вашем CSS для каждого типа данных. С компонентом userRenderer вы можете сделать что-то более сложное (например, установить атрибут «enabled»: 'event.target.enabled = (data.type == 'goodType')', который бы включил ярлык для goodType и отключил для всех другие. Вы можете, конечно, использовать любой компонент вместо метки и изменять любые свойства, которые вы хотите. – Chadwick

Смежные вопросы