在我的页面上,我有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;
}
但是我不能让它工作:(。第一次加载没问题,但回发不是。当我输入新用户并提交时,表单字段根本没有显示,如果我再次提交 - 那么它显示正确的项目。我很感激你能给我的任何提示。
答案 0 :(得分:1)
尝试移动
base.OnLoad(e);
在protected override void OnLoad(EventArgs e)
方法主体的末尾。
或者将您的代码移动到OnInit方法(或其他一些早期的页面生命周期方法)