当在sharepoint列表中创建项目时,我将允许用户选择更改“created by”值。它似乎默认隐藏此值并自动填充当前用户。我想在创建或修改项目时为用户提供此选项并预先填充当前用户,同时也为用户提供更改此字段的选项。
任何人都有任何建议或者谁可以指出我正确的方向?
非常感谢
答案 0 :(得分:8)
“创建者”列的internal name是作者。
编写ItemEventReceiver并覆盖ItemUpdated方法:
//USER_NAME is user account name that you want to set.
public override void ItemUpdated(SPItemEventProperties properties) {
SPSecurity.RunWithElevatedPrivileges(delegate
{
using (SPWeb web = properties.OpenWeb())
{
web.AllowUnsafeUpdates = true;
// Insert any other updates here
SPUser spUser = web.EnsureUser("USER_NAME");
string strUserId = spUser.ID + ";#" + spUser.Name;
spListItem["Author"] = strUserId;
spListItem.Update();
// if you do not want to change the Modified or Modified By fields,
// use spListItem.SystemUpdate() instead
}
});
}
编辑:更新的代码;删除了迭代更新。
答案 1 :(得分:-1)
谢谢,伙计,但我应该提到我没有使用任何代码。
我的解决方案是将 Created By 字段重命名为 Created By(unused),创建一个新的 Created By 字段并使用一些自定义Javascript在页面加载时填充字段。