如何为 Flex Datagrid 制作可重复使用的 labelFunction?
我有一个标签函数,例如:
private function formatDate (item:Object, column:DataGridColumn):String
{
var df:DateFormatter = new DateFormatter();
df.formatString = "MM/DD/YY";
if (column.dataField == "startDate") {
return df.format(item.startDate);
}
return "ERR";
}
我通过使用 labelFunction
在数据列中使用它。
如果我的数据字段名为“startDate”,则效果很好。 我想让这个函数变得通用,这样我就可以在任何地方使用它。
我怎样才能做到这一点。 我想我需要使用某种“反思” - 或者也许完全是另一种方法?
I have a label function like :
private function formatDate (item:Object, column:DataGridColumn):String
{
var df:DateFormatter = new DateFormatter();
df.formatString = "MM/DD/YY";
if (column.dataField == "startDate") {
return df.format(item.startDate);
}
return "ERR";
}
Which I use in a datacolumn by using labelFunction
.
This works just fine if my data field is called 'startDate'. I want to make this function generic so I can use it everywhere.
How can I do this. i think i need to use some kind of 'reflection' - or perhaps another approach altogether?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用列的 dataField 属性作为项目的键来使该函数通用。
-本
You can make the function generic using the dataField attribute of the column as the key into your item.
-Ben
您可以定义另一个函数,我们称之为
partial
,它将一些额外的参数绑定到您的函数:然后您可以像这样更改您的函数:
请注意,我添加了一个名为
dataField
的新参数> 在参数列表中第一个,并将所有对“startDate”的引用替换为该参数。并像这样使用它:
partial
函数返回一个新函数,该函数使用调用partial的参数调用原始函数,并将参数与新函数的参数连接起来......你和我一样吗? 另一种说法是它可以返回一个新函数,其中 N 个参数预先绑定到特定值。让我们一步一步地看一下:
partial(formatDate, "startDate")
返回一个如下所示的函数:但是
func
和boundArgs
是你作为参数传递给partial
的内容,所以你可以说它看起来像这样:当它被调用时,它或多或少与这个
Tada 相同!
You can define another function, let's call it
partial
that binds some extra arguments to your function:Then you change your function like this:
Notice that I have added a new argument called
dataField
first in the argument list, and replaced all references to "startDate" with that argument.And use it like this:
The
partial
function returns a new function that calls the original function with the parameters from the call to partial concatenated with the parameters to the new function... you with me? Another way of putting it is that it can return a new function where N of the arguments are pre-bound to specific values.Let's go through it step by step:
partial(formatDate, "startDate")
returns a function that looks like this:but the
func
andboundArgs
are what you passed as arguments topartial
, so you could say that it looks like this:which, when it is called, will be more or less the same as this
Tada!
这是更通用的方法:
用法(Spark DataGrid)
或 MX Datagrid
传递自定义日期格式字符串:
默认为“MM/DD/YYYY”;
here is more generic way:
Usage (Spark DataGrid)
or for MX Datagrid
to pass custom Date Format String:
Default is a "MM/DD/YYYY";