Click here to Skip to main content
15,888,984 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
<<pre lang="xml"><pre lang="xml">?xml version="1.0" encoding="UTF-8"?>
<ExperimentalSets>
  <ExperimentalSet GUID="Set01">
    <Identity>
      <Name>The First Experimental Set</Name>
      <Description/>
    </Identity>
    <Experiments OrderBy="Value">
      <Experiment GUID="Expt0009" DesignIndex="15" RunIndex="12">11</Experiment>
      <Experiment GUID="Expt0014" DesignIndex="14" RunIndex="7" >25</Experiment>
      <Experiment GUID="Expt0013" DesignIndex="13" RunIndex="3" >37</Experiment>
      <Experiment GUID="Expt0012" DesignIndex="12" RunIndex="1" >41</Experiment>
      <Experiment GUID="Expt0011" DesignIndex="11" RunIndex="5" >54</Experiment>
      <Experiment GUID="Expt0010" DesignIndex="10" RunIndex="9" >69</Experiment>
    </Experiments>
  </ExperimentalSet>
  <ExperimentalSet GUID="Set02">
    <Identity>
      <Name>The Second Experimental Set</Name>
      <Description/>
    </Identity>
    <Experiments OrderBy="Run Index">
      <Experiment GUID="Expt1012" DesignIndex="12" RunIndex="1" >1004</Experiment>
      <Experiment GUID="Expt1005" DesignIndex="5"  RunIndex="2" >1102</Experiment>
      <Experiment GUID="Expt1013" DesignIndex="13" RunIndex="3" >1324</Experiment>
      <Experiment GUID="Expt1007" DesignIndex="7"  RunIndex="4" >1921</Experiment>
      <Experiment GUID="Expt1011" DesignIndex="11" RunIndex="5" >1245</Experiment>
    </Experiments>
  </ExperimentalSet>
</ExperimentalSets>

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="html" indent="yes"/>
    <xsl:template match="ExperimentalSets">
      <html>
        <body>
          <script type="text/JavaScript">
            function parsingAttributes(control)
            {
            var ctr= document.getElementById(control.text);
            ctr.style.display='block';
            }
            function sortByNumber(divid,txt)
            {

            }
          </script>
          <xsl:apply-templates select="ExperimentalSet">
           </xsl:apply-templates>
        </body>
      </html>
    </xsl:template>
  <xsl:template match ="ExperimentalSet">
    <xsl:variable name="NodeName">
      <xsl:value-of select="Identity/Name"/>
    </xsl:variable>
  <a href="#" onclick="parsingAttributes(this)">
    <xsl:value-of select="Identity/Name"/>
  </a>
    <div id="{$NodeName}" style="display:none">
      <table border="4">
        <tr>
          <th onclick="sortByNumber('{$NodeName}',this)">Number</th>
          <th>GUID</th>
          <th>Design Index</th>
          <th>Run Index</th>
        </tr>

        <xsl:for-each select ="Experiments/Experiment">
          <tr>
            <td>
              <xsl:value-of select ="text()"/>
            </td>
            <td>
              <xsl:value-of select ="@GUID"/>
            </td>
            <td>
              <xsl:value-of select ="@DesignIndex"/>
            </td>
            <td>
              <xsl:value-of select ="@RunIndex"/>
            </td>
          </tr>
        </xsl:for-each>
       </table>
    </div>

  <br />
  </xsl:template>
</xsl:stylesheet

>

the related xsl file is the one shown above.
The need is to sort the html table contents based on the column clicks provided by the user.

This has to be done dynamically based on the user clicks.
i.e. if the user clicks on Number the contents are to be sorted based on number,if the user clicks on Design Index the data has to be sorted by design Index..

In short how do we sort the data dynamically based on events like the onclick in xslt.


Kindly post in your suggestions.
Posted

1 solution

Hi,
Please refer following link
Make all your tables sortable[^]

Thanks,
Imdadhusen
 
Share this answer
 
Comments
VarunKumarGB 18-Jan-11 3:58am    
Thanks Sunasara

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900