<xsl:choose>
<xsl:when test="@Attachments='1' or msxsl:string-compare(string(@Attachments),'Yes','','i')=0 or
msxsl:string-compare(string(@Attachments),'True','','i')=0">Yes</xsl:when>
<xsl:otherwise>No</xsl:otherwise>
</xsl:choose>简单来说,按照原始的数据源,它只能做到显示有还是没有附件,就是判断@Attachments字段,有就显示Yes,没有就显示No。
这样对于我的要求来说是显然不够的,我们来对这个页面做一些改动,添加我们需要的东西:
<script type="text/javascript">
function LoadIframe(frame,src,addUrlParms)
{
var frm=frame; if (typeof(frame)=="string") frm=document.getElementById(frame);
if (frm) {
if (addUrlParms) { if (src.indexOf("?")>0) frm.src=src+"&"+urlParms; else frm.src=src+"?"+urlParms;}
else frm.src=src;
}
}
function AddLink (link, itemId)
{
var fileName = link.substring(link.lastIndexOf("/")+1);
var attDiv = document.getElementById("attDiv"+itemId);
attDiv.appendChild(attLink);
attDiv.appendChild(document.createElement("br"));
}
function MakeRequest(url, itemId)
{
var xhr = false;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject ("Microsoft.XMLHTTP");
}
catch (e) { }
}
}
if (xhr) {
xhr.onreadystatechange = function(){ShowLink(xhr, itemId)};
xhr.open("GET", url, true);
xhr.send(null);
}
else {
document.getElementById("updateArea"). innerHTML = "Sorry, but I couldn't create an XMLHttpRequest";
}
}
function ShowLink(xhr, itemId)
{
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var ht = (xhr.responseXML && xhr.responseXML.contentType== "text/xml") ?
xhr.responseXML. getElementsByTagName("choices") [0].textContent: xhr.responseText;
}
else {
var ht = "There was a problem with the request " + xhr.status;
}
var st = ht.indexOf("id=idAttachmentsTable");
var et = ht.indexOf("</TABLE>", st);
var slink = ht.substring(st, et);
var sl = slink.indexOf("http://");
var el = slink.indexOf("\"",sl);
var link;
var attCount = 0;
if (sl>-1)
{
var loadLink = document.getElementById("load"+itemId);
var attDiv = document.getElementById("attDiv"+itemId);
attDiv.removeChild(loadLink);
while (sl>-1)
{
link = slink.substring(sl,el);
AddLink (link, itemId);
attCount = attCount+1;