2012-08-04 2 views
1

J'ai créé 2 Afficher pour la liste maintenant je veux définir la vue différente par défaut sur différents Login. Je veux faire en utilisant C# codeComment définir l'affichage personnalisé en tant que vue par défaut pour la liste SharePoint?

Exemple:

Vues sont les suivantes:

  1. AllItems
  2. UserView

Puis

Si Adm Connexion puis la vue par défaut de liste est AllItems

Si l'utilisateur Connexion puis de Liste par défaut est UserView

Comment puis-je faire cela en utilisant le code C#?

Code Snippet:

   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; 
       } 

code ci-dessus est de donner l'erreur : « Impossible d'évaluer l'expression car le code est optimisé ou un cadre natif est sur le dessus de la pile d'appel. »

Répondre

5

Vous devez également appeler la méthode Update sur l'objet SPView.

SPView yourView = CurrentList.Views[UserView]; 
yourView.DefaultView = true; 
yourView.Update(); 
2

Je garde cette méthode dans mes méthodes d'extension

public static void SetAsDefaultView(this SPList self, string viewName) 
    { 
     if (!self.Views[viewName].DefaultView) 
     { 
      self.DefaultView.DefaultView = false; 
      self.Views[viewName].DefaultView = true; 
      self.Update(); 
     } 
    } 
Questions connexes