我有几个具有计算字段的SharePoint列表,该字段是根据ID字段计算的,例如:如果ID是13,则计算的字段是" XX00013",其中" XX"表示此特定列表的用途。
默认情况下,在“显示自”中,此" XX00013"显示。
如何在编辑表单中将其显示为只读?这样编辑条目的用户总能看到他/她正在编辑哪个条目?
我不认为我可以编辑EditForm,因为它受网站管理员的限制。 我可以访问内容编辑器Web部件来编辑一些JavaScript代码。 有什么建议?
答案 0 :(得分:0)
我尝试将以下代码放在内容编辑器Web部件中,该部件已添加到“编辑”页面中。它到目前为止工作,“XX00013”在编辑表单中显示为就绪。这个解决方案只是一个循环。
一般来说,如何显示计算字段的问题仍然存在。
<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>