2016-04-22 62 views

回答

0

没有什么内置的允许你来完成这件事。但是,如果您显示自己的界面以创建条目(例如自定义注册页面),则可以控制行为并防止在达到限制后进行注册。

为了让您开始,下面是使用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文档。

相关问题