2011-09-22 9 views
0

드롭 다운 값을 선택하는 방법은 무엇입니까? 일부 데이터를 xsl의 드롭 다운에서 선택할 때마다 데이터를 표시하려고합니다. 예를 들어, 드롭 다운에서 A를 선택하면 A와 관련된 세부 정보가 테이블에 표시됩니다. 마찬가지로, B가 강조 표시되면 B와 관련된 세부 사항 만 표시됩니다. if 문에서 드롭 다운 값을 선택하기 위해 xslt에 한 줄의 코드를 작성해야합니다.xsl에서 드롭 다운 값 선택

<?xml version="1.0" encoding="iso-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="/"> 
    <html> 
     <head> 
     <title>VPGate Media Mixer</title> 
     <meta http-equiv="expires" content="0"/> 
     <meta http-equiv="pragma" content="no-cache"/> 
     <meta http-equiv="cache-control" content="no-cache, must-revalidate"/> 
     <meta http-equiv="refresh" content="15"></meta> 
     <script src="/Common/common.js\" type="text/javascript"></script> 
     <link rel="stylesheet" type="text/css" href="style001.css" /> 
     <link rel="stylesheet" type="text/css" href="Grid.Default.css" /> 
     </head> 
     <body class="WorkArea"> 
     <div class="divSummaryHeader" id="SummaryHeader"> 
      <h1>Media Mixer - VPGate</h1>   
     </div> 

     &#160; 
     <div class="RadGrid RadGrid_Default" id="SummaryData" style="position:absolute;width:828px;height:510px;overflow:auto"> 
      <table border="0" class="rgMasterTable rgClipCells" cellspacing="0" cellpadding="0" > 
      <tr> 
       <input type="button" class="formEditBtn" id="SubBtn" value="Refresh" onclick="window.location=window.location;"/> 
      </tr> 
      <tr> 
       <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;" colspan="2">Conference Summary</td> 
      </tr> 
      <tr> 
       <td> 
       <table border="0" class="rgMasterTable rgClipCells" cellspacing="0" cellpadding="0" > 
        <tr> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Conference Name</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Conference ID</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Composite Address</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Composite Port</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Composite Ssrc</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">No Of Participants</td> 
        </tr> 
        <xsl:if test="MediaMixer!= ''"> 
        <xsl:for-each select="MediaMixer/Conference"> 
         <!--<xsl:sort select="Name"/>--> 
         <xsl:if test="Name !=''"> 
         <xsl:if test="(position() mod 2 = 0)"> 
          <tr class="rgAltRow SummaryTableDataRow"> 
          <td valign = "top"> 
           <xsl:value-of select="Name"/> 
          </td> 
          <td valign = "top"> 
           <xsl:value-of select="ConfId"/> 
          </td> 
          <td valign = "top"> 
           <xsl:value-of select="CompositeAddress"/> 
          </td> 
          <td valign = "top"> 
           <xsl:value-of select="CompositePort"/> 
          </td> 
          <td valign = "top"> 
           <xsl:value-of select="CompositeSsrc"/> 
          </td> 
          <td valign = "top"> 
           <xsl:value-of select="NoOfParticipants"/> 
          </td> 
          </tr> 
         </xsl:if> 
         <xsl:if test="(position() mod 2 = 1)"> 
          <td> 
          <tr class="rgRow SummaryTableDataRow"> 
           <td valign = "top"> 
           <xsl:value-of select="Name"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="ConfId"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="CompositeAddress"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="CompositePort"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="CompositeSsrc"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="NoOfParticipants"/> 
           </td> 
          </tr> 
          </td> 
         </xsl:if> 
         </xsl:if> 
        </xsl:for-each> 
        </xsl:if> 
        <xsl:if test="MediaMixer = ''"> 
        <td valign = "top"> 
         <xsl:text>No Data </xsl:text> 
        </td> 
        </xsl:if> 
       </table> 
       </td> 
      </tr> 
      </table> 
      &#160; 

      <div align="center"> 
      <b> Please select a Conference Name :</b> 
      &#160; 
      <select name="combo" id="combo"> 
       <xsl:for-each select="MediaMixer/Conference"> 
       <option> 
        <xsl:value-of select="Name"/> 
       </option> 
       </xsl:for-each> 
      </select> 
      </div> 




      <script type="text/C#" runat="server"> 

      </script> 



      <table border="0" class="rgMasterTable rgClipCells" cellspacing="1" cellpadding="1"> 
      <tr> 
       <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;" colspan="2">Conference Details</td> 
      </tr> 

      <tr> 
       <td> 
       <table border="0" class="rgMasterTable rgClipCells" cellspacing="0" cellpadding="0" > 
        <tr> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Conference Name</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Conference ID</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Participant ID 1</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Participant ID 2</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Participant Address</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">Participant Listening Port</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">MM Listening Port</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">SSRC From Participant</td> 
        <td class="rgHeader SummaryTableHdrRow" style="font-weight:bold;">SSRC From MM</td> 
        </tr> 
        <xsl:if test="MediaMixer!= ''"> 
        <xsl:for-each select="MediaMixer/Conference"> 
         <xsl:if test="Name='combo.SelectedValue'"> 


         <xsl:for-each select="Participant"> 
          <xsl:if test="(position() mod 2 = 0)"> 
          <tr class="rgAltRow SummaryTableDataRow"> 
           <td valign = "top"> 
           <xsl:value-of select="../Name"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="../ConfId"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="translate(ID1, 
           'abcdefghijklmnopqrstuvwxyz', 
           'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" /> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="ID2"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="ParticipantAddress"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="ParticipantListeningPort"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="MMListeningPort"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="SSRCFromParticipant"/> 
           </td> 
           <td valign = "top"> 
           <xsl:value-of select="SSRCFromMM"/> 
           </td> 
          </tr> 
          </xsl:if> 
          <xsl:if test="(position() mod 2 = 1)"> 
          <td> 
           <tr class="rgRow SummaryTableDataRow"> 

           <td valign = "top"> 
            <xsl:value-of select="../Name"/> 
           </td> 
           <td valign = "top"> 
            <xsl:value-of select="../ConfId"/> 
           </td> 
           <td valign = "top"> 
            <xsl:value-of select="translate(ID1, 
           'abcdefghijklmnopqrstuvwxyz', 
           'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" /> 
           </td> 
           <td valign = "top"> 
            <xsl:value-of select="ID2"/> 
           </td> 
           <td valign = "top"> 
            <xsl:value-of select="ParticipantAddress"/> 
           </td> 
           <td valign = "top"> 
            <xsl:value-of select="ParticipantListeningPort"/> 
           </td> 
           <td valign = "top"> 
            <xsl:value-of select="MMListeningPort"/> 
           </td> 
           <td valign = "top"> 
            <xsl:value-of select="SSRCFromParticipant"/> 
           </td> 
           <td valign = "top"> 
            <xsl:value-of select="SSRCFromMM"/> 
           </td> 
           </tr> 
          </td> 
          </xsl:if> 
         </xsl:for-each> 
         </xsl:if> 
        </xsl:for-each> 
        </xsl:if> 
        <xsl:if test="MediaMixer= ''"> 
        <td valign = "top"> 
         <xsl:text>No Data </xsl:text> 
        </td> 
        </xsl:if> 
       </table> 
       </td> 
      </tr> 
      </table> 
      &#160; 
      <div style="display:none"> 
      <iframe id="frameUpdate" name="frameUpdate" width="100%"></iframe> 
      </div> 
     </div> 
     </body> 
    </html> 
    </xsl:template> 
</xsl:stylesheet> 
+0

이것은 완전히 적절하게 XSLT를 사용하는 것처럼 보입니다! 변환 언어가 아닌 프로그래밍 언어가 필요합니다! – ColinE

답변

1

브라우저에서 클라이언트 측 XSLT와 XML 데이터에서 HTML 페이지를 구축하는 경우, XSLT는 변환 프로세스를 정의 할 수 있음에 유의하십시오. HTML이 준비되면 XSLT가 작업을 완료합니다. 당신이 할 수있는 것은 드롭 다운 변경에 반응하고 부적절한 데이터를 숨기는 XSLT 소스에 자바 스크립트를 삽입하는 것입니다. 페이지가 완료되고 XSLT가 이미 완료되면 자바 스크립트가 작동하기 때문에 XSLT는 자바 스크립트와 통신 할 수 없습니다. 그러나 자바 스크립트를 HTML 소스에 맞출 수 있습니다. XSLT없이 일반 HTML에서이 작업을 수행하고 XSLT에서이 HTML을 작성하는 방법을 상상해보십시오.