私はデータベースにユーザーの生年月日を含めていますが、年齢を表示する必要があります。私は年齢を計算する関数を持っていますが、ItemRendererでは使用できませんし、理由もわかりません。このコードをItemRendererの外で使用するとうまくいくとは思えません。 DOBは{data.dob}
によってアクセスされます。ここでAdobe Flex ItemRenderer:計算する
は私のコードです:
<s:GridColumn dataField="age" headerText="Age" width="80">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer>
<fx:Script>
<![CDATA[
// Retrieving the user's DOB
var dateStr:String = "{data.dob}";
//Splitting the DOB up to make it compatible with Flex
var parts:Array = dateStr.split("-");
if(parts == null || parts.length != 3)
{
Alert.show("There is an error retrieving the birthday.");
}
var dobDay:* = parts[2];
var dobMonth:* = parts[1] - 1;
var dobYear:* = parts[0];
var userDOB : Date = new Date(dobYear, dobMonth, dobDay);
var today : Date = new Date();
var diff : Date = new Date();
diff.setTime(today.getTime() - userDOB.getTime());
var userAge : int = diff.getFullYear() - 1970;
]]>
</fx:Script>
<s:Label id="ageLbl" text="userAge" />
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>`
最初に私はそう、私はvar dateStr:String = "{data.dob}";
にそれを変更するとエラーが1120: Access of Undefined property Alert
に移行var dateStr:String = {data.dob};
ため#1084エラーを取得しました。私も同じエラーがあった:diff, parts, today, userAge, userDOB
。 アイデアはありますか?私が言ったように、コードはItemRendererの外で、ただ1つのDOBを使って動作します。
は、この 'VARの関数datestrのように使用してみてください:文字列= data.dob;' – Exhausted