Flashhilfe.de - Flash Community

Liste/Aufzählung innerhalb einer DataGridColumn [Flash 10]

Forum > Apache Flex / Adobe AIR > Liste/Aufzählung innerhalb einer DataGridColumn

 


AntwortenRegistrieren Seite1

 06.04.2009, 23:16 
Beiträge: 160
Wohnort: hamburg
Registriert: Feb 2005

Liste/Aufzählung innerhalb einer DataGridColumn
Ich schreibe gerade an einer Filmliste. Mein Problem ist, wie ich innerhalb dieser Liste für jeden Film eine darin verschachtelte kleine Liste/Aufzählung für die Schauspieler realisiere.

Die Daten sind in einer externen XML, deren Aufbau so ist:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="ISO-8859-1"?>
<movielist>
   <movie id="1">
      <title>12 monkeys</title>
      <year>1995</year>
      <director>Terry Gilliam</director>
      <rating>6</rating>
      <photo_file>pics/1.jpg</photo_file>
      <genres>
         <genre>Drama</genre>
         <genre>Sci-Fi</genre>
         <genre>Thriller</genre>
      </genres>
      <actors>
         <actor>Bruce Willis</actor>
         <actor>Brad Pitt</actor>
         <actor>Madeleine Stowe</actor>
      </actors>
   </movie>


und der wichtige Teil der mxml:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
<mx:DataGrid dataProvider="{movies_db.lastResult.movie}" width="90%" height="90%" x="50" y="50" minWidth="800" rowHeight="150">
      <mx:columns>
         <mx:DataGridColumn headerText="Cover" dataField="photo_file" itemRenderer="mx.controls.Image" />
         <mx:DataGridColumn headerText="Title" dataField="title" />
         <mx:DataGridColumn headerText="Director" dataField="director" />
         <mx:DataGridColumn headerText="Actors" dataField="actors" />
         <mx:DataGridColumn headerText="Genres" dataField="genres" />
         <mx:DataGridColumn headerText="Year" dataField="year" />
         <mx:DataGridColumn headerText="Rating" dataField="rating" />
      </mx:columns>
   </mx:DataGrid>


Die DataGridColumn mit "Actors" und "Genres" müssen anderes gemacht werden, denn bisher sieht es so aus:

Originalgröße anzeigen


bisher mit dataField und labelFunction experimentiert, aber erfolglos...
Gruß,
Höhfo




|| follow me on twitter ||
Geändert von hoehfo am 06.04.09 um 23:36 Uhr

 06.04.2009, 23:49Re1
Beiträge: 160
Wohnort: hamburg
Registriert: Feb 2005

Themenautor/in

hier ein Versuch... vielleicht ist das ein Ansatz:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="movies_db.send()">

<mx:Script>
<![CDATA[
  import mx.controls.dataGridClasses.DataGridColumn;

  private function verschachtelt(item:Object, col:DataGridColumn):String
  {
    return item.actors.actor;
  }
]]>
</mx:Script>
   <mx:HTTPService id="movies_db" url="movie_db/movies.xml" resultFormat="e4x" />
   
   <mx:DataGrid dataProvider="{movies_db.lastResult.movie}" width="90%" height="90%" x="50" y="50" minWidth="800" rowHeight="150">
      <mx:columns>
         <mx:DataGridColumn headerText="Cover" dataField="photo_file" itemRenderer="mx.controls.Image" />
         <mx:DataGridColumn headerText="Title" dataField="title" />
         <mx:DataGridColumn headerText="Director" dataField="director" />
         <mx:DataGridColumn headerText="Actors" labelFunction="verschachtelt" dataField="actors" />
            
         <mx:DataGridColumn headerText="Genres" dataField="genres" />
         <mx:DataGridColumn headerText="Year" dataField="year" />
         <mx:DataGridColumn headerText="Rating" dataField="rating" />
      </mx:columns>
   </mx:DataGrid>
</mx:Application>
Gruß,
Höhfo




|| follow me on twitter ||
 07.04.2009, 00:22Re2
Beiträge: 160
Wohnort: hamburg
Registriert: Feb 2005

Themenautor/in

mein Mitbewohner hat mir hier eben eine function zusammengesetzt mit der die tags "< >" einfach entfernt werden.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="movies_db.send()">

<mx:Script>
<![CDATA[
  import mx.controls.dataGridClasses.DataGridColumn;

  private function verschachtelt(item:Object, col:DataGridColumn):String
  {
      var str:String = item.actors.actor;
    var myPattern:RegExp = /<.*?>/g;
    var newStr:String=str.replace(myPattern, "");
    return newStr;
  }
 
      private function verschachtelt2(item:Object, col:DataGridColumn):String
  {
      var str:String = item.genres.genre;
    var myPattern:RegExp = /<.*?>/g;
    var newStr:String=str.replace(myPattern, "");
    return newStr;
  }
]]>
</mx:Script>
   <mx:HTTPService id="movies_db" url="movie_db/movies.xml" resultFormat="e4x" />
   
   <mx:DataGrid dataProvider="{movies_db.lastResult.movie}" width="90%" height="90%" x="50" y="50" minWidth="800" rowHeight="150">
      <mx:columns>
         <mx:DataGridColumn headerText="Cover" dataField="photo_file" itemRenderer="mx.controls.Image" />
         <mx:DataGridColumn headerText="Title" dataField="title" />
         <mx:DataGridColumn headerText="Director" dataField="director" />
         <mx:DataGridColumn headerText="Actors" labelFunction="verschachtelt" />
            
         <mx:DataGridColumn headerText="Genres" labelFunction="verschachtelt2" />
         <mx:DataGridColumn headerText="Year" dataField="year" />
         <mx:DataGridColumn headerText="Rating" dataField="rating" />
      </mx:columns>
   </mx:DataGrid>
</mx:Application>


ist jetzt sicher nicht so die schöne Lösung... würde mich über andere Vorschläge freuen.
vielleicht ist die bisherige lösung nicht so ideal, besonders wenn ich später noch mehr Funktionen hinzufügen will, wie z.B. dass wenn man auf einen Schauspieler klickt, ausschließlich Filme mit ihm angezeigt werden...
Gruß,
Höhfo




|| follow me on twitter ||
Geändert von hoehfo am 07.04.09 um 20:33 Uhr

 
nicht sichtbar bei eingeloggten Mitgliedern
 
Themen
Ähnliche Beiträge zum Thema
 
AntwortenRegistrieren Seite1

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de