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 に答える