如何将自定义视图设置为SharePoint列表的默认视图?

Vik*_*iya 1 c# sharepoint listview list sharepoint-2010

我已经创建了2个View for List现在我想在不同的Login上将Different视图设置为默认值.我想用c#代码来做这件事

例如:

视图如下:

  1. 所有项目
  2. 用户视图

然后

如果管理员登录,那么列表的默认视图是AllItems

如果用户登录,则列表的默认视图为UserView

我如何使用C#代码执行此操作?

代码片段:

                SPUser LoggedInUser = web.CurrentUser;

                SPList CurrentList = web.Lists[ListName];

                if (LoggedInUser.LoginName == LoginUser)
                {
                    web.AllowUnsafeUpdates = true;
                    CurrentList.Views[AllItems].DefaultView = false;
                    CurrentList.Views[UserView].DefaultView = true;
                    CurrentList.Update();              // Error here
                    web.AllowUnsafeUpdates = false;

                }
                else if (LoggedInUser.LoginName == LoginAdmin)
                {
                    web.AllowUnsafeUpdates = true;
                    CurrentList.Views[AllItems].DefaultView = true;
                    CurrentList.Views[UserView].DefaultView = false;
                    CurrentList.Update();               // Error here
                    web.AllowUnsafeUpdates = false;
                }
Run Code Online (Sandbox Code Playgroud)

上面的代码是给出错误:"无法评估表达式,因为代码已优化或本机框架位于调用堆栈之上."

小智 5

您还必须在SPView对象上调用Update方法.

SPView yourView = CurrentList.Views[UserView];
yourView.DefaultView = true;
yourView.Update();
Run Code Online (Sandbox Code Playgroud)