2016-04-22 13 views
0

SharePoint 2010リストで許可されるエントリの数を制限しようとしています。このリストはユーザーがサインアップするためのもので、たとえばこれを60に制限します。私は同様の質問を見てきましたが、どれもうまくいかないようです。SharePointリストに入力できるアイテムの数を制限する方法は?

これまでに見つかった検証式はどれも適切ではありませんでした。私はこれに関するアドバイスと助けに感謝します。

ありがとうございました! :)

答えて

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パーツプロパティを編集することができます。 [コンテンツリンク]プロパティで、テキストファイルへのリンクを貼り付けます。これにより、WebパーツでHTMLとJavaScriptがレンダリングされます。

詳細については、マイクロソフトが提供するCommon Programming Tasks in the JavaScript Object Modelのドキュメントを参照してください。

関連する問題