我有包括用戶的出生日期的數據庫,但我想顯示他們的年齡。我有一個計算年齡的函數,但是我不能在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>`
起初我得到一個#1084錯誤var dateStr:String = {data.dob};
,所以我把它改成var dateStr:String = "{data.dob}";
和錯誤遷移到1120: Access of Undefined property Alert
。我也有同樣的錯誤:diff, parts, today, userAge, userDOB
。 這裏的任何想法?就像我說的那樣,代碼在ItemRenderer之外工作,只使用一個DOB。
使用這樣的'變種dateStr嘗試:字符串= data.dob;' – Exhausted