我目前正在部署一个带有发布页面的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;
}
}
上面的代码负责将"旧的"Modified-Date写回选中的项。
关于这段代码的有趣的事情是-如果我以admin身份登录,它就会工作。作为一个普通用户,这段代码被执行,但修改后的日期仍然是当前的日期和时间。
谁能给我一些建议如何解决这个普通用户?
提前致谢
史蒂夫通常,您使用SystemUpdate来确保修改后的字段不会在SPListItem
上更改。更多信息http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.systemupdate.aspx