我正在尝试限制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文档。