2011-05-04 2 views
0

asp:XmlDataSource을 사용하여 xml 문서를 나열하고 있습니다. 그것은 다음과 같습니다어떻게 ListView에서 XmlDataSource 순서가 반대로 문서를 달성하기 위해?

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

그리고이 같은 asp:Listview에 사용하고 있습니다

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

순서를 반대로 할 수있는 방법이 있다면 내가 때문에, 궁금 해서요 나는 마지막 x12 행을 행 내 행으로하고 싶습니다. 이것을 어떻게 할 수 있습니까?

답변

2

당신의 XML은 (예를 들어)이 닮은 경우 :

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

희망하는 데 도움이 :

+0

시원하게 보이지만 * 'xsl'은 선언되지 않은 접두사입니다. 라인 1, 위치 2. * 예외. 어떤 아이디어? –

+0

답변을 다음과 같이 업데이트 할 수 있습니까? ' \t \t \t은, \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t' 는 당신이 그것을 변경하는 경우 , 나는 너의 대답을 받아 들일 것이다. –

+0

죄송합니다. 전체 xslt가 필요하다는 것을 의미합니다. 그에 따라 업데이트 됨 :) – Nathan

2

을 : 당신은 인라인을 할 수있는 다음

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

이 같은 변환을 목록을 채우고 역순환 한 다음 해당 목록에 바인딩 할 수 있습니다.

EDIT : XML 파일에 완전히 의존하기 때문에 예제를 작성하기가 어렵지만 아래의 기본 개념은 필요한 경우 select 문을 변경하고 필요에 따라 명령문에서 일부를 추가하는 예제입니다.

XDocument XDoc = XDocument.Load(XMLFileName); 
ListView.DataSource = (from XMLNode in XDoc.Nodes() 
         select XMLNode.ToString()).ToList().Reverse(); 
ListView.DataBind(); 
+0

몇 가지 예제 코드를 제공해 주시겠습니까? –

+0

예를 들어 주셔서 감사합니다. 좋아 보인다. 네이선 구현이 더 쉬워 보이지만 코드에 감사드립니다! –

관련 문제