Domanda

In primo luogo, la questione richiede un po 'di introduzione in modo prega di portare con me.

L'alto livello è che sto collegandomi ad un servizio Web esterno che tornerà un po 'di XML per il mio controller all'apice. L'idea è che voglio visualizzare l'XML restituito in un bel formato tabellare in una pagina Visualforce. Il formato del ritorno XML sarà simile a questo:

<Wrapper><reportTable name='table_id' title='Report Title'>
  <row>
    <Element1><![CDATA[campaign_id]]></Element1>
    <Element2><![CDATA[577373]]></Element2>
    <Element3><![CDATA[4129]]></Element3>
    <Element4 dataFormat='2' dataSuffix='%'><![CDATA[0.7151]]></Element4>
    <Element5><![CDATA[2010-04-04]]></Element5>
    <Element6><![CDATA[2010-05-03]]></Element6>
  </row>
</reportTable>

...

Ora Al momento sto usando la classe di utilità XMLDOM (sviluppato da SF per le funzioni XML) per mappare questi dati in un oggetto personalizzato "reportTable", che contiene un elenco di oggetti personalizzati "riga". La ragione per cui mi sto costruendo fuori in questo modo è perché non so quanti elementi saranno in ogni riga, né il numero di righe.

Il Visualforce sguardi pagina qualcosa di simile:

<table><apex:repeat value="{!reportTables}" var="table">
  <apex:repeat value="{!table.rows}" var="row">
  <tr>
   <apex:repeat value="{!row.ColumnValue}" var="column">
    <apex:repeat value="{!column}" var="value">
     <td>
     <apex:outputText value="{!value}" />
     </td>
    </apex:repeat>
   </apex:repeat>
   </tr>
  </apex:repeat>

Le domande sono:

1) Questo sembra un approccio buono per il problema?

2) C'è un / modo più semplice meglio consumare l'XML oltre a scrivere la mia oggetti personalizzati per mappare VF?

Disponibile a qualsiasi e tutti i suggerimenti. Spero davvero che ci sia un modo migliore di costruire la tabella HTML me stesso, come poi ho anche a che fare con lo styling e l'allineamento ecc Grazie.

È stato utile?

Soluzione

Dal momento che stai tornando XML direttamente al controller, definire e utilizzare una classe wrapper, con proprietà (anche collezioni aggiuntive per le lunghezze di riga non definiti) per ogni nodo XML necessario. E 'spesso ciò che deve essere fatto per visualizzare i dati tabulari da a più oggetti. Una collezione di oggetti di wrapper vi permetterà di iterare su di loro, e l'uso la notazione del punto per accedere ai campi nella classe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top