Flex DataGrid Liquelfunction Consulta -- actionscript-3 campo con apache-flex campo con datagrid campo con flex4 campo con labelfunction camp Relacionados El problema

Flex Datagrid labelFunction query


0
vote

problema

Español

main.mxl

  <s:DataGrid dataProvider="{employeeData}"> // employeeData is an Arraycollection with predefined data           <s:typicalItem>             <s:DataItem firstName="Christopher"                          lastName="Winchester"                          hireDate="22/12/2013"/>         </s:typicalItem>           <s:columns>              <s:ArrayList>                  <s:GridColumn labelFunction="employeeName"                               headerText="Name"/>                  <s:GridColumn dataField="hireDate"                               headerText="Hire Date"                               labelFunction="dateFormat"/>             </s:ArrayList>          </s:columns>       </s:DataGrid>      <fx:Script>         <![CDATA[             import mx.collections.ArrayCollection;             import mx.controls.dataGridClasses.DataGridColumn;             import mx.rpc.events.ResultEvent;              [Bindable]             private var employeeData: ArrayCollection;                private function employeeName(item: Object, column: GridColumn): String             {                 return item.firstName+" "+item.lastName;             }           ]]>     </fx:Script>   

a) ¿Alguien puede explicarme cómo funciona internamente Datagrid con la función stryename ? Quiero decir, iam ni siquiera pasando 2 parámetros para la etiqueta de error, pero aún así, ¿cómo se llama?

b) ¿Por qué debería usar s: etiqueta de arraylist dentro s: columnas tag?

Original en ingles

Main.mxl

<s:DataGrid dataProvider="{employeeData}"> // employeeData is an Arraycollection with predefined data           <s:typicalItem>             <s:DataItem firstName="Christopher"                          lastName="Winchester"                          hireDate="22/12/2013"/>         </s:typicalItem>           <s:columns>              <s:ArrayList>                  <s:GridColumn labelFunction="employeeName"                               headerText="Name"/>                  <s:GridColumn dataField="hireDate"                               headerText="Hire Date"                               labelFunction="dateFormat"/>             </s:ArrayList>          </s:columns>       </s:DataGrid>      <fx:Script>         <![CDATA[             import mx.collections.ArrayCollection;             import mx.controls.dataGridClasses.DataGridColumn;             import mx.rpc.events.ResultEvent;              [Bindable]             private var employeeData: ArrayCollection;                private function employeeName(item: Object, column: GridColumn): String             {                 return item.firstName+" "+item.lastName;             }           ]]>     </fx:Script> 

A) Can anyone please explain me how does Datagrid internally works with employeeName function? I mean, Iam not even passing 2 parameters for labelFunction, BUT still how does it get called?

B) Why should I use s:ArrayList tag inside s:columns tag?

              
         
         

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

a) ¿Alguien puede explicarme cómo funciona internamente Datagrid internamente? ¿Con la función de empleado? Quiero decir, iam ni siquiera pasando 2 parámetros Para los marcadores de educación, pero aún así, ¿cómo se llama?

El LiquelFunction es una propiedad en la clase de GridColumn. Dentro de la grida, hay una función de rastración () que se utiliza para determinar cuál debe ser la etiqueta para esa instancia específica de la columna. Salida del código del marco:

  /**  *  @private  *  Common logic for itemToLabel(), itemToDataTip().   Logically this code is  *  similar to (not the same as) LabelUtil.itemToLabel().  */ private function itemToString(item:Object, labelPath:Array, labelFunction:Function, formatter:IFormatter):String {     if (!item)         return ERROR_TEXT;      if (labelFunction != null)         return labelFunction(item, this);      var itemString:String = null;     try      {         var itemData:Object = item;         for each (var pathElement:String in labelPath)             itemData = itemData[pathElement];          if ((itemData != null) && (labelPath.length > 0))             itemString = (formatter) ? formatter.format(itemData) : itemData.toString();     }     catch(ignored:Error)     {     }              return (itemString != null) ? itemString : ERROR_TEXT; }   

b) ¿Por qué debería usar S: etiqueta de arraylist dentro de S: etiqueta de columnas?

Porque el tipo de datos de la propiedad de las columnas en el DataGrid es un ILIST; Y el arraylist implementa la interfaz ilist. Lo que está viendo es el MXML WAY para crear y definir un arraylist. Usted usaría un enfoque ligeramente diferente si quisiera crear las columnas en ActionScript.

 

A) Can anyone please explain me how does Datagrid internally works with employeeName function? I mean, Iam not even passing 2 parameters for labelFunction, BUT still how does it get called?

The labelFunction is a property on the GridColumn class. Inside the Gridcolumn there is an itemToString() function which is used to determine what the label should be for that specific instance of the column. right out of the framework code:

/**  *  @private  *  Common logic for itemToLabel(), itemToDataTip().   Logically this code is  *  similar to (not the same as) LabelUtil.itemToLabel().  */ private function itemToString(item:Object, labelPath:Array, labelFunction:Function, formatter:IFormatter):String {     if (!item)         return ERROR_TEXT;      if (labelFunction != null)         return labelFunction(item, this);      var itemString:String = null;     try      {         var itemData:Object = item;         for each (var pathElement:String in labelPath)             itemData = itemData[pathElement];          if ((itemData != null) && (labelPath.length > 0))             itemString = (formatter) ? formatter.format(itemData) : itemData.toString();     }     catch(ignored:Error)     {     }              return (itemString != null) ? itemString : ERROR_TEXT; } 

B) Why should I use s:ArrayList tag inside s:columns tag?

Because the data type of the columns property on the DataGrid is an IList; and the ArrayList implements the IList interface. What you're looking at is the MXML way to create and define an ArrayList. You'd use a slightly different approach if you wanted to create the columns in ActionScript.

 
 
       
       
0
 
vote

Para responder a su primera pregunta: la propiedad "LiquelFunction" es una referencia a la función que será invocada por el DataGrid para formatear el texto de una celda en una columna. La función se llamará dinámicamente y el DataGrid pasará en los parámetros requeridos. El DataGrid espera que una función de etiqueta siempre tenga esta firma. Si no lo hace, obtendrá un error de tiempo de ejecución.

Técnicamente, una función se puede llamar dinámicamente con la siguiente sintaxis:

  var anObject:MyType; var methodName:String = "myMethod";  anObject[methodName](param1, param2);   

o si tiene un objeto de función

  var myFunction:Function; myFunction(param1, param2);   
 

To answer your first question: the "labelFunction" property is a reference to the function that will be invoked by the DataGrid to format the text of a cell in a column. The function will be called dynamically and the DataGrid will pass in the required parameters. The DataGrid expects a label function to always have this signature. If you fail to do so, you will get a runtime error.

Technically, a function can be called dynamically with the following syntax:

var anObject:MyType; var methodName:String = "myMethod";  anObject[methodName](param1, param2); 

or if you have a Function object

var myFunction:Function; myFunction(param1, param2); 
 
 
     
     

Relacionados problema

2  Flex DataGrid LiquelFunction no se llama  ( Flex datagrid labelfunction not getting called ) 
Tengo un DataGrid, donde una de las columnas tiene un órgano de órdenes. Cuando ejecuto la aplicación una barra de desplazamiento aparece en la cuadrícula de ...

0  Flex DataGrid Liquelfunction Consulta  ( Flex datagrid labelfunction query ) 
main.mxl <s:DataGrid dataProvider="{employeeData}"> // employeeData is an Arraycollection with predefined data <s:typicalItem> <s:D...

8  ¿Cómo puedo hacer un lódico reutilizable para Flex Datagrid?  ( How can i make a reusable labelfunction for flex datagrid ) 
Tengo una función de etiqueta como: private function formatDate (item:Object, column:DataGridColumn):String { var df:DateFormatter = new DateFormatter(...

0  Liquelfunction en barseries junto con plotseries  ( Labelfunction in barseries along with plotseries ) 
Tengo un gráfico de barras de FLEC. Tiene una serie de barras. Necesito mostrar el Datalabel en la punta de los bares. Por esto estoy usando Liquelfunction. E...

0  Extraer texto basado en el carácter - Flex  ( Extract text based on character flex ) 
Estoy usando un componente completo automático y un conjunto de etiquetas para que el usuario tenga la capacidad de buscar por su nombre o identificación. Una...

0  Obtenga contenido de una sola marca de células de un DataGrid en Flex 3  ( Get content of a single cells labelfunction from a datagrid in flex 3 ) 
Esto es similar a este Pregunta Pregunté la semana pasada. Mi DataGrid se rellena con tres números de teléfono por fila. Cada número de teléfono se extrae...

1  ¿Problemas con la carga flexible de los objetos de valor (carga perezosa en el extremo frontal?)  ( Problems with indepth flex loading of value objects lazy loading at the front e ) 
Estoy usando un java-backend con un Flex Frontend. Y cuando quiero usar un lójuego, no carga las propiedades en profundidad, como un objeto de valor, es como ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos