Domanda

Sto usando un asp:XmlDataSource Per elencare un documento XML. Sembra questo:

<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/App_Data/Xml/History.xml" />

E lo sto usando in un asp:Listview come questo:

<asp:ListView runat="server" DataSourceID="XmlDataSource1" >

Mi chiedevo se ci fosse un modo per invertire l'ordine, perché Vorrei Ultimo riga dell'XML per essere il primo riga nella mia lista. Come posso raggiungere questo obiettivo?

È stato utile?

Soluzione

Se il tuo XML sembrava questo (per esempio):

<myxml>
  <row id="1">
  <row id="2">
</myxml>

Quindi puoi fare una trasformazione in linea con qualcosa del genere:

<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/App_Data/Xml/History.xml">
  <Transform>   
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="*">
     <myxml> 
        <xsl:for-each select="//row"> 
          <xsl:sort select="@id" order="descending" /> 
          <xsl:copy-of select="row"/> 
        </xsl:for-each> 
     </myxml>
    </xsl:template>
    </xsl:stylesheet>
</Transform>
</asp:XmlDataSource>

Spero possa aiutare :)

Altri suggerimenti

Potresti semplicemente popolare un elenco, invertirlo, quindi legarsi a quell'elenco.

EDIT: è difficile dare un esempio, perché dipenderà totalmente dal tuo file XML, ma l'idea di base è sotto, dove cambieresti l'istruzione selezionata come richiesto e forse aggiungi alcune dalle dichiarazioni come richiesto.

XDocument XDoc = XDocument.Load(XMLFileName);
ListView.DataSource = (from XMLNode in XDoc.Nodes()
                       select XMLNode.ToString()).ToList().Reverse();
ListView.DataBind();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top