1

在我的页面上,我有 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;
    }

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

4

1 回答 1

1

尝试移动

base.OnLoad(e);

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

于 2013-11-02T12:00:03.603 回答