在XSLT中创建一个简单的模态弹出窗口 [英] Create a simple modal pop-up window in XSLT
问题描述
我正在构建一个样式表,表中有几个成员。我想要的是当我点击每个成员弹出模式窗口打开时,该成员的数据在XML文件中(我可以使用成员ID作为参考)。我试图使用fancybox( http://fancybox.net/ ),但问题是,这些成员是填充的从XML动态生成,当我点击一个成员时,它会弹出一些来自其他成员的数据。
I am building a style sheet that has a few Members in the table. What I want is when I click on each Member a pop-up modal window to open with that Member's data which is in the XML file (I can use Member ID for reference). I tried to use fancybox (http://fancybox.net/) but the problem with that is, these Members are populated dynamically from the XML and when I click on one Member it opens pop-up with data from some other Member.
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
样式表上的成员名称是应该打开弹出窗口的链接,其中包含成员信息,如出生日期和性别。
Member Names on the stylesheet are links that should open popups with Member information like date of birth and gender.
我使用FancyBox的代码示例:
My code sample using 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>
推荐答案
解决方案:
由于会员被动态添加到样式表中,我们必须给< div>
inline_DTRXMLInfo一个唯一的ID,可以通过附加MemberNumber来实现到< div>
ID。
Since the Members are added to the stylesheet on the fly, we have to give <div>
inline_DTRXMLInfo a unique ID which can be achived by appending MemberNumber to the <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>
这篇关于在XSLT中创建一个简单的模态弹出窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!