【问题标题】:How to style the each cell of Flex DataGrid如何为 Flex DataGrid 的每个单元格设置样式
【发布时间】:2009-09-16 12:19:44
【问题描述】:

我有一个 Flex DataGrid,它有一些列,我放置了一个项目渲染器,它使该列中的所有元素超链接,我有一个要求,我需要在其中查看用户类型,基于我必须启用或禁用超链接。

有什么好的方法,可以在单元格级别获取样式属性...?

我搜索了,但没有多大帮助..!!

【问题讨论】:

  • 您应该添加一个标签/信息,说明您正在使用什么技术(.NET、ASP.NET、VB6、.. 等等..)
  • Santosh 已经放了一个 flex 标签,即 adobe flex。
  • Santosh,您如何在项目渲染中创建一个 if 语句来检查用户类型,然后启用或禁用超链接。

标签: apache-flex datagrid cell


【解决方案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>

如果您的代码的 sn-p 最少,该示例可能更合适,但您应该能够适应这一点。

【讨论】:

  • 感谢 Chadwick 的努力和代码清单,我正在调整你的代码,让我看看它是怎么回事......我会在这里保持更新。
  • Chadwick,但还有一件事,在 onChange() 中,我们可以获取其他行的数据吗?以及如何获取样式属性...对于单元格数据...?
  • 在“简单”组件中,我设置了用于渲染单元格的组件的样式名称(一个标签)。在该示例中,您将希望在您的 css 中为每种类型的数据设置一个样式。使用 'userRenderer' 组件,您可以做一些更复杂的事情(例如设置 'enabled' 属性:event.target.enabled = (data.type == 'goodType') 这将为 goodType 启用 Label 并为所有其他组件禁用。您当然可以使用任何类型的组件而不是 Label 和更改您希望的任何属性。
  • @Santosh 您不能“获取其他行的数据”,我认为您也不应该这样做。该组件将为每个单元格呈现一次(实际上使用了多个实例,但这不相关)并且每次都适当地设置数据。 google.com/search?q=flex+datagrid+item+renderer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 1970-01-01
  • 2011-10-22
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多