在回发时更改SharePoint FormField ItemId

时间:2013-10-21 13:14:19

标签: c# asp.net sharepoint

在我的页面上,我有SharePoint人员编辑器和表单域:

<SharePoint:PeopleEditor runat="server" ID="frmUser" AutoPostBack="true" />
<SharePoint:FormField runat="server" ID="frmPermissions"/>

当更改PeopleEditor值时,表单字段应显示新的列表项:

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        if (!Page.IsPostBack || string.IsNullOrEmpty(frmUser.CommaSeparatedAccounts))
        {
            frmUser.CommaSeparatedAccounts = UsersListHelper.CurrentUser.LoginName;
        }

        UsersListHelper.GetSelectedUser(frmUser.CommaSeparatedAccounts);

        frmPermissions.ItemId = UsersListHelper.SelectedUser.Item.ID;
        frmPermissions.ListId = UsersListHelper.List.ID;
        frmPermissions.FieldName = UsersListHelper._permissionsFieldName;

        frmPermissions.ControlMode = Microsoft.SharePoint.WebControls.SPControlMode.Edit;
    }

但是我不能让它工作:(。第一次加载没问题,但回发不是。当我输入新用户并提交时,表单字段根本没有显示,如果我再次提交 - 那么它显示正确的项目。我很感激你能给我的任何提示。

1 个答案:

答案 0 :(得分:1)

尝试移动

base.OnLoad(e);

protected override void OnLoad(EventArgs e)方法主体的末尾。 或者将您的代码移动到OnInit方法(或其他一些早期的页面生命周期方法)