我正在嘗試限制SharePoint 2010列表中允許的條目數。該列表供用戶註冊,我們希望將其限制爲60。我曾看過類似的問題,但似乎都沒有奏效。如何限制可以在SharePoint列表中輸入的項目數量?
無驗證公式的發現至今已經適當。我將不勝感激任何建議和幫助。
謝謝你提前! :)
我正在嘗試限制SharePoint 2010列表中允許的條目數。該列表供用戶註冊,我們希望將其限制爲60。我曾看過類似的問題,但似乎都沒有奏效。如何限制可以在SharePoint列表中輸入的項目數量?
無驗證公式的發現至今已經適當。我將不勝感激任何建議和幫助。
謝謝你提前! :)
沒有什麼內置的允許你來完成這件事。但是,如果您顯示自己的界面以創建條目(例如自定義註冊頁面),則可以控制行爲並防止在達到限制後進行註冊。
爲了讓您開始,下面是使用JavaScript對象模型在創建項目之前查詢列表並檢測項目數量的示例。
<input type="button" value="Sign Up Now!" onclick="createItemIfBelowLimit()" />
<script>
function createItemIfBelowLimit(){
var max = 60;
var listTitle = "Your List Title";
var clientContext = new SP.ClientContext();
var list = clientContext.get_web().get_lists().getByTitle(listTitle);
clientContext.load(list);
clientContext.executeQueryAsync(function(){
var itemCount = list.get_itemCount();
if(itemCount < max){
createItem(listTitle,{
"Title":"Example title text",
"Body":"Example body text"
});
}else{
alert("This sign-up list is full. Sorry!");
}
},function(sender,args){
alert(args.get_message());
});
}
function createItem(listTitle,values){
var clientContext = new SP.ClientContext();
var list = clientContext.get_web().get_lists().getByTitle(listTitle);
var newItem = list.addItem();
for(var key in values){
newItem.set_item(key,values[key]);
}
newItem.update();
clientContext.load(newItem);
var rootFolder = list.get_rootFolder(); // Note: use a list's root folder to determine its server relative URL
clientContext.load(rootFolder);
clientContext.executeQueryAsync(function(){
var itemId = newItem.get_item("ID");
SP.UI.ModalDialog.showModalDialog(
{
title: "Item #"+itemId+" Created Successfully!",
url: rootFolder.get_serverRelativeUrl() + "/DispForm.aspx?ID="+itemId
}
);
},function(sender,args){
alert(args.get_message());
});
}
</script>
要使用上述代碼,請首先將其保存到文本文件並將其上載到SharePoint網站上的庫。然後,您可以在您的網站上創建一個頁面,將內容編輯器Web部件添加到該頁面,然後編輯該內容編輯器Web部件的Web部件屬性。在「Content Link」屬性中,粘貼到文本文件的鏈接;這將導致Web部件呈現您的HTML和JavaScript。
如需進一步閱讀,請查閱Microsoft提供的Common Programming Tasks in the JavaScript Object Model文檔。