2011-02-18 35 views
0

我有一個調用web服務來獲取數據的頁面。屏幕連接正確,我能夠顯示我期望的數據。現在我需要在xsl的for-each內部編寫另一個內部循環,但是我需要傳遞一個參數來對父數據集進行排序,然後獲取子視圖以顯示在子視圖中。這裏是我的代碼塊迄今:我需要關於XSL和ASP.NET問題的幫助

這裏是XML

<xs:element name="ExchangeWantedItemsMeToodUsers"> 
<xs:complexType> 
- <xs:sequence> 
    <xs:element name="ExchangeWantedId" type="xs:int" minOccurs="0" /> 
    <xs:element name="ExchangeWantedName" type="xs:string" minOccurs="0" /> 
    <xs:element name="MeTooer" type="xs:string" minOccurs="0" /> 
    <xs:element name="MeTooerBankName" type="xs:string" minOccurs="0" /> 
    <xs:element name="DateFulfilled" type="xs:string" minOccurs="0" /> 
    <xs:element name="DateFulfilledUnformated" type="xs:dateTime" minOccurs="0" /> 
    <xs:element name="UserID" type="xs:int" minOccurs="0" /> 
    <xs:element name="FullName" type="xs:string" minOccurs="0" /> 
    <xs:element name="PostedBankName" type="xs:string" minOccurs="0" /> 
    </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
- <xs:element name="ExchangeWantedItemsMeToodUsers1"> 
- <xs:complexType> 
- <xs:sequence> 
    <xs:element name="ExchangeWantedID" type="xs:int" minOccurs="0" /> 
    <xs:element name="DisplayName" type="xs:string" minOccurs="0" /> 
    <xs:element name="FullName" type="xs:string" minOccurs="0" /> 
    </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

這裏是xsl

<xsl:for-each select="/root/ExchangeWantedItemsMeToodUsers">     
    <tr> 
     <xsl:call-template name="AlternateRowColor" /> 
     <td><xsl:value-of select="ExchangeWantedName" /></td> 
     <td> 
      <xsl:for-each select="/root/ExchangeWantedItemsMeToodUsers"> 
       <xsl:value-of select="MeTooer" /> - <xsl:value-of 
                select="MeTooerBankName" /> 
      </xsl:for-each> 
     </td> 
     <td><xsl:value-of select="FullName" /> - <xsl:value-of 
               select="PostedBankName" /></td> 
     <td><xsl:value-of select="DateFulfilled" /></td> 
    </tr> 
</xsl:for-each> 
+2

沒有輸入樣本和所需的輸出,這個問題沒有明確定義... – 2011-02-18 15:18:31

回答

0

我在這裏提出幾個假設,因爲你的問題是過高的水平。我希望我不會太離譜。

我相信你正在尋找沿着以下線的東西片斷

<xsl:for-each select="/root/ExchangeWantedItemsMeToodUsers[@FullName='xxxxx]"> 
    <xsl:sort select="MeTooer" data-type="text"/> 
    <xsl:value-of select="MeTooer" /> - <xsl:value-of select="MeTooerBankName" /> 
</xsl:for-each> 

這是極有可能你其實並不需要過濾和排序的內部循環。

  1. 您可以通過擴展已經包含在你的循環指令中的XPath表達式收緊你的過濾條件(例如,在這裏我把你已經知道你有興趣的全名的值的假設) - 什麼你打電話給你的參數。由於你的問題留下了這個標準,我拿起FullName屬性。告訴我們更多關於這個額外的過濾條件。如果有的話。

  2. 至於排序,有一個專門的XSLT指令正是爲這種情況而製作的。它應用於由父節點for-each選擇條件產生的節點集。我再次在這裏做了一個假設,並選取了第一個顯示屬性作爲排序標準。讓我們再次知道你真正想要的東西。

+0

它不是@FullName,但更準確地說是@ExchangeWantedId。我實際上錯過了它的未排序,但將子數據綁定到父數據,因此對於每個ExchangeWantedItem我想列出每個MeTooer。 – 2011-02-18 16:40:10