J'ai une grille de données dans mon fichier mxml, disons, samp.mxml.comment accéder à la grille de données dans un mxml dans un autre composant?
<mx:DataGrid id="taskDataGrid" dataProvider="{initDG}" variableRowHeight="true"
editable="true" width="100%" paddingBottom="1" paddingTop="1" height="55" >
<mx:columns>
<mx:DataGridColumn dataField="Select"
editable="true"
rendererIsEditor="true"
itemRenderer="mx.controls.CheckBox"
editorDataField="selected" />
<mx:DataGridColumn dataField="TaskName"
width="220"
editable="true"
rendererIsEditor="true"
itemRenderer="components.taskComponent"/> //i call the component.
<mx:DataGridColumn dataField="TaskId"
itemRenderer="mx.controls.TextInput" />
</mx:columns>
</mx:DataGrid>
Dans l'une des colonnes de la grille de données, je dois afficher une zone de saisie de texte et un bouton. J'ai donc écrit cette fonctionnalité en tant que composant séparé, i.e., taskComponent.mxml
<mx:TextInput id="TaskName"
editable="true"
text="{data.TaskName}"
mouseDown="addTaskRow(event);"
/>
<mx:Button id="searchTask" label="..." width="30" height="25" click="showPopUp();"/>
maintenant Si je clique sur la zone de saisie de texte dans le composant, je veux une autre ligne de données à ajouter. Auparavant je l'avais comme, si je clique sur le DataGrid, une ligne est ajoutée. J'ai donc écrit la fonction dans le samp.mxml lui-même. C'est la fonction pour ajouter une ligne de la grille de données.
private function addTaskRow(event:MouseEvent):void
{
taskDataGrid.dataProvider.addItem(
{
}
);
taskDataGrid.height += 30;
}
Si je tente d'écrire la fonction dans le fichier taskComponent, il montre l'erreur, « L'accès de la propriété non définie taskDataGrid ». Comment utiliser le DataGrid dans le composant taskComponent?
désolé de vous déranger, mais je suis très nouveau à Flex. J'ai ajouté MouseDown = "trace (this.owner);". Mais où voir ce qu'il trace. J'utilise FlexBuilder. – Angeline
Déboguez l'application (appuyez sur F11) et cliquez sur l'entrée de texte. Alt-tab pour le Flex Builder, allez dans le menu de la fenêtre et sélectionnez la console. (Ou sélectionnez la perspective de débogage flex de window | perspectives). Le panneau de la console sera affiché. – Amarghosh
Je reçois iqa0.VBox4.taskPanel.taskDataGrid – Angeline