在XSLT中创建一个简单的模态弹出窗口

4
我正在构建一个样式表,其中有一些成员在表格中。我的目标是,当我单击每个成员时,弹出一个模态窗口,并显示XML文件中该成员的数据(可以使用成员ID作为参考)。我尝试使用fancybox (http://fancybox.net/),但问题在于,这些成员是从XML动态生成的,当我单击一个成员时,弹出窗口会显示来自其他成员的数据。
<Members>
<Member Name = “John Smith” MemberNumber = “JS001” DateofBirth = “09/01/1978” Gender = “Male”/>
<Member Name = “Andy Rodrigues” ” MemberNumber = “AR001” DateofBirth = “05/01/1970” Gender = “Male”/>
<Member Name = “Julie Dean” ” MemberNumber = “JD001”  DateofBirth = “05/01/1970” Gender = “Male”/>
</Members>

**Stylesheet**
Member Name             Member Number   
[John Smith][1]         JS001
[Andy Rodriguez][1]     AR001
[Julie Dean][1]         JD001

**Pop-up**
Member            John Smith
Date of Birth     09/01/1978
Gender            Male

我使用FancyBox的代码示例:

 <xsl:for-each select="Members/Member">
    <tr>
      <td>

        <div class="indicator bck-belize-hole brd-peter-river">
          <xsl:element name="a">
            <xsl:attribute name="href">#inline_DTRXMLInfo</xsl:attribute>
            <xsl:attribute name="class">various moreinfo whiteicon</xsl:attribute>

            <xsl:value-of select="@Name"/>
          </xsl:element>

        </div>
        <xsl:value-of select="@Name"/>

      </td>
      <td >
        <font face="Arial" size="2" color="black">
          <b>
            <xsl:value-of select="@MemberNumber"/>
          </b>
        </font>
      </td>
    </tr>
    </xsl:for-each>
  <div class="fancynone">

  <div id="inline_DTRXMLInfo" class="fancysize">
    <xsl:call-template name="DTRXMLInfo">

      <xsl:with-param name="Date Of Birth" select="DateofBirth"></xsl:with-param>

    </xsl:call-template>
  </div>

你是指像这样的吗:https://jsfiddle.net/robertrozas/vg3hr3fh/ - Hackerman
更多类似内容请访问:http://jsfiddle.net/uKaBH/(点击DiscountDetails) - Ankit Vora
固定代码:https://jsfiddle.net/robertrozas/vg3hr3fh/ ...新年快乐 :) - Hackerman
我看到你硬编码了XML,但在我的情况下,我只有一个可以使用的XML路径。例如Members/Member[@Name]。 - Ankit Vora
我不是巫师……我只是试图用你提供的少量信息来指导我自己……如果你想要更具体的方法,你也需要更具体……你的问题对我们所有人来说仍然不清楚。 - Hackerman
显示剩余2条评论
1个回答

2

解决方案:

由于成员是动态添加到样式表中的,因此我们必须为 <div> inline_DTRXMLInfo 分配一个唯一的ID,可以通过将 MemberNumber 追加到 <div> ID 中来实现。

代码:

 <xsl:attribute name="href">#inline_DTRXMLInfo_<xsl:value-of select="@MemberNumber"/></xsl:attribute>

<div id="inline_DTRXMLInfo_{$MemberNumber}" class="fancysize">
    <xsl:call-template name="DTRXMLInfo">

      <xsl:with-param name="Date Of Birth" select="DateofBirth"></xsl:with-param>

    </xsl:call-template>
  </div>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接