2011-09-09 78 views
2

我使用XML作爲數據源填充我的數據網格。我需要用數千個分隔符格式化數字列。因此,我創建了一個<mx:NumberFormatter id="setNumberFormat" .../>Flex中的Datagrid的NumberFormat列

但我沒有在下面的代碼中使用它。 (請參閱註釋//格式編號使用numberFormatter)

for each(var item in fieldsXMLListNew){ 

        //Copy all columns in to a proxy 
        var dgColumns:Array = myGrid.columns; 
        //create a new dynamic Column 
        var aColumn:DataGridColumn = new DataGridColumn(); 
        // add parameters 

        aColumn.dataField = '@' + item.attribute("field"); 
        if (item.attribute("data_type") == "N"){ //Numeric Fields Only 
         //Sort Numeric Columns 
         aColumn.sortCompareFunction = xmlDataGridNumericSorter(item.attribute("field").toString()); 
         //Format Numbers using numberFormatter 
         setNumberFormat.format(item.attribute("field").toString()); 
        } 
        aColumn.headerText = item.attribute("header_text"); 
        //add to proxy 
        dgColumns.push(aColumn); 
        //copy all in to Data Grid columns again. 
        myGrid.columns = dgColumns; 

       } 

任何調整此代碼,以便它採取數字格式?

+0

你提到無法使用。問題是什麼?如果您的項目是,則屬性名稱爲「字段」,值爲「123」。 setNumberFormat.format(item.attribute( 「場」)的toString());與setNumberFormat.format(123)相同; –

回答

0

使用的labelFunction在您需要的每個列,assinging的labelFunction屬性:

<s:GridColumn dataField="field" labelFunction="myLabelFunction"/> 

的labelFunction屬性:

private function myLabelFunction(item:Object, column:GridColumn):String 
     { 
      return setNumberFormat.format(item[column.dataField]); 
     }