2011-07-18 22 views
1

現在、公開ページを含むSharePointソリューションを展開しています。これらのページで、ユーザーは「変更日を更新しない」を選択できます。
これは、ページ上に置かれた小さなコントロールによって解決されます。SharePoint - 変更しないでください更新日の変更日

<ctrl:ModifiedFieldManager FieldName="Modified" runat="server" id="modifiedmanager"> 
</ctrl:ModifiedFieldManager> 

このコントロールは、ユーザーがチェックできるチェックボックスを作成します。
これをチェックすると、変更されたフィールドは同じままになります。 コントロールは "BaseFieldControl"から派生しています。

public override void UpdateFieldValueInItem() 
    { 
     base.EnsureChildControls(); 

     if (this.ModifiedFieldManagerBox.Checked) 
     { 
      this.Value = this.Item["Modified"]; 
      base.UpdateFieldValueInItem(); 
     } 
     else 
     { 
      this.Value = DateTime.Now; 
     } 
    } 

上記のコードをチェックした場合に戻ってアイテムを「古い」修正 - 日付を書くことは責任があります。

このコードの面白いところは、私が管理者としてログインしている場合に機能します。 通常のユーザーの場合、このコードは実行されますが、変更された日付は現在の日付と時刻です。

誰でも私に普通のユーザーのためにこれを解決するためのいくつかのアドバイスを与えることができますか?アドバンス

Thxを

一般スティーブ

答えて

0

は、あなたが変更されたフィールドがtehのSPListItem

詳細情報

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.systemupdate.aspx

+0

上で変更されていないことを確認するためにSystemUpdateを使用し、あなたはに結び付けることができますリストのイベントハンドリングとそこにSystemUpdateを呼び出しますか? –

+0

その後、私はその時点で私はページのコントロールへのアクセス権がないので、ContentTypeのどこかにチェックボックスの値を保存しなければならないでしょう。 – Steve

+0

「変更済み」フィールドを上書きできるようにするには、「権限の管理」が必要であることがわかりました。 - 非常に奇妙な – Steve

関連する問題