2014-04-04 115 views
1

我有幾個SharePoint列表,其中有一個計算字段,它是從ID字段計算得出的,例如,如果ID是13,則計算的字段是「XX00013」,其中「XX」表示該特定列表的用途。SharePoint列表,以編輯的形式顯示計算的字段

默認情況下,在Display From中顯示此「XX00013」。

如何讓它在編輯表單中顯示爲只讀?因此,編輯條目的用戶總是可以看到他/他正在編輯哪個條目?

我不認爲我可以編輯EditForm,因爲它受到網站管理員的限制。 我確實可以訪問內容編輯器Web部件來編輯一些JavaScript代碼。 有什麼建議嗎?

回答

0

我試圖將以下代碼放入添加到編輯頁面的內容編輯器Web部件中。它工作到目前爲止,「XX00013」僅在編輯表單中顯示爲ready-only。這個解決方案只是一個步行。

仍然一般問題如何顯示計算字段仍然存在。

<script type="text/javascript"> 
function DisplayID(){ 
var regex = new RegExp("[\\?&]"+"ID"+"=([^&#]*)"); 
var qs = regex.exec(window.location.href); 
var sID = qs[1]; 
var stID="XX"; 
var nLength=5-sID.length; 
var i=0; 
do{ 
    stID=stID.concat("0"); 
    i++; 
}while (i<nLength) 
stID=stID.concat(sID); 
var TD1 = document.createElement("TD"); 
TD1.className = "ms-formlabel"; 
TD1.innerHTML = "<h3 class='ms-standardheader'>XX_ID</h3>"; 
var TD2 = document.createElement("TD"); 
TD2.className = "ms-formbody"; 
TD2.innerHTML = stID; 
var IdRow = document.createElement("TR"); 
IdRow.appendChild(TD1); 
IdRow.appendChild(TD2); 
var ItemBody = GetSelectedElement(document.getElementById("idAttachmentsRow"),"TABLE").getElementsByTagName("TBODY")[0]; 
ItemBody.insertBefore(IdRow,ItemBody.firstChild); 
} 
_spBodyOnLoadFunctionNames.push("DisplayID"); 
</script> 
相關問題