>HTML in een berekende kolom

>

Soms wil je in een lijst een hyperlink weergeven in een berekende kolom. Voorbeeld wanneer je een alternatieve editpage wil of zo. Je kan dan gewoon de link samenstellen in de kolom maar dan zie je die (lange) url in je lijst en dat is niet zo netjes.

Je kan een propere link weergeven op deze manier:

  • Maak een berekende kolom (of een gewone kolom van het type tekst) en stel de link samen. Plaats je HTML tags tussen 2 <DIV></DIV> tags:
    voorbeeld: <DIV><a href=”link”>klik hier</a></DIV>.
  • In de pagina waar je deze kolom wil weergeven voeg je een Inhoudseditor webpart toe en plak er onderstaande stukje javascript code in:

<script type="text/javascript">
//
// Text to HTML
// Feedback and questions: Christophe@PathToSharePoint.com
//
var theTDs = document.getElementsByTagName("TD");
var i=0;
var TDContent = " ";
while (i < theTDs.length) {
try {
TDContent = theTDs[i].innerText || theTDs[i].textContent;
if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) {
theTDs[i].innerHTML = TDContent;
}
}
catch(err){}
i=i+1;
}
//
// ExpGroupRenderData overwrites the default SharePoint function
// This part is needed for collapsed groupings
//
function ExpGroupRenderData(htmlToRender, groupName, isLoaded) {
var tbody=document.getElementById("tbod"+groupName+"_");
var wrapDiv=document.createElement("DIV");
wrapDiv.innerHTML="<TABLE><TBODY id=\"tbod"+ groupName+"_\" isLoaded=\""+isLoaded+ "\">"+htmlToRender+"</TBODY></TABLE>";
var theTBODYTDs = wrapDiv.getElementsByTagName("TD"); var j=0; var TDContent = " ";
while (j < theTBODYTDs.length) {
try {
TDContent = theTBODYTDs[j].innerText || theTBODYTDs[j].textContent;
if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) {
theTBODYTDs[j].innerHTML = TDContent;
}
}
catch(err){}
j=j+1;
}
tbody.parentNode.replaceChild(wrapDiv.firstChild.firstChild,tbody);
}
</script>