2
我有一個ASP.NET網頁,它有幾個XSLT來轉換xml文件中的數據。 XSLT操縱數據並將其呈現在表格中。允許在ASP.NET網頁上按升序和降序對XSLT表格標題進行排序
是否有可能允許用戶單擊每個表標題來按升序或降序對值進行排序?
後臺代碼在VB.net中以防萬一嗎?
我有一個ASP.NET網頁,它有幾個XSLT來轉換xml文件中的數據。 XSLT操縱數據並將其呈現在表格中。允許在ASP.NET網頁上按升序和降序對XSLT表格標題進行排序
是否有可能允許用戶單擊每個表標題來按升序或降序對值進行排序?
後臺代碼在VB.net中以防萬一嗎?
是,只要傳遞到變換排序順序和數據類型作爲參數:
下面是一個簡單的例子:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="pSortField" select="'age'"/>
<xsl:param name="pSortOrder" select="'descending'"/>
<xsl:param name="pSortDataType" select="'number'"/>
<xsl:template match="/*">
<xsl:copy>
<xsl:for-each select="*">
<xsl:sort select="*[name()=$pSortField]"
order="{$pSortOrder}" data-type="{$pSortDataType}"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
當在下面的XML應用該變換文件:
<people>
<person>
<age>15</age>
<name>Anna</name>
</person>
<person>
<age>22</age>
<name>Kim</name>
</person>
<person>
<age>31</age>
<name>Harry</name>
</person>
<person>
<age>27</age>
<name>Peter</name>
</person>
</people>
的想要的,正確的結果產生(按年齡降序排列的號碼的所有元素person
):
<people>
<person>
<age>31</age>
<name>Harry</name>
</person>
<person>
<age>27</age>
<name>Peter</name>
</person>
<person>
<age>22</age>
<name>Kim</name>
</person>
<person>
<age>15</age>
<name>Anna</name>
</person>
</people>
只要改變參數和其他排序結果的值會產生。
使用這些參數:
<xsl:param name="pSortField" select="'name'"/>
<xsl:param name="pSortOrder" select="'ascending'"/>
<xsl:param name="pSortDataType" select="'text'"/>
現在的結果是:
<people>
<person>
<age>15</age>
<name>Anna</name>
</person>
<person>
<age>31</age>
<name>Harry</name>
</person>
<person>
<age>22</age>
<name>Kim</name>
</person>
<person>
<age>27</age>
<name>Peter</name>
</person>
</people>