Frage

Zum einen erfordert diese Frage ein bisschen Einführung so Bär mit mir bitte.

Das hohe Niveau ist, dass ich zu einem außerhalb Webdienst anschließe, die einige XML zu meinen Apex-Controller zurück. Die Idee ist, dass ich die XML-Daten in ein schönes Tabellenformat in einer Visualforce-Seite zurück angezeigt werden soll. Das Format der XML Rückwegs etwas wie folgt aussehen:

<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>

...

Jetzt noch ich die XMLDOM Utility-Klasse bin mit (entwickelt von SF für XML-Funktionen) diese Daten in ein benutzerdefiniertes Objekt „reportTable“ abzubilden, die eine Liste von „Zeile“ benutzerdefinierte Objekte enthält. Der Grund, warum ich es aus dieser Weise bin Gebäude ist, weil ich weiß nicht, wie viele Elemente in jeder Reihe sein wird, noch die Anzahl der Zeilen.

Die Visualforce-Seite sieht wie folgt aus:

<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>

Die Fragen sind:

1) scheint dies wie ein guter Ansatz für das Problem?

2) Gibt es eine einfachere / bessere Möglichkeit, die XML neben Schreiben meine eigene benutzerdefinierte zu verbrauchen Objekte zu VF abzubilden?

Offen für alle und alle Vorschläge. Ich hoffe wirklich, gibt es einen besseren Weg, als den Aufbau der HTML-Tabelle selbst, wie dann muss ich auch mit Styling und Ausrichtung usw. Dank befassen.

War es hilfreich?

Lösung

Da Sie die XML direkt auf Ihren Controller sind Rückkehr, zu definieren und eine Wrapper-Klasse verwenden, mit Eigenschaften (sogar zusätzliche Sammlungen für nicht definierte Zeilenlängen) für jeden XML-Knoten benötigt. Es ist oft das, was getan werden muss, aus über mehrere Objekte tabellarische Daten anzuzeigen. Eine Sammlung Ihrer Wrapper-Objekte werden Sie iterieren ihnen erlauben, und die Verwendung der Punktnotation für den Zugriff, die Felder in der Klasse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top