在Sharepoint 2007中更改“创建者”

时间:2011-03-21 20:39:52

标签: sharepoint

当在sharepoint列表中创建项目时,我将允许用户选择更改“created by”值。它似乎默认隐藏此值并自动填充当前用户。我想在创建或修改项目时为用户提供此选项并预先填充当前用户,同时也为用户提供更改此字段的选项。

任何人都有任何建议或者谁可以指出我正确的方向?

非常感谢

2 个答案:

答案 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在页面加载时填充字段。