2008-12-03 10 views
3

J'ai une partie Web qui rend les éléments de liste aléatoires (à partir de n'importe quelle liste et type de liste) dans un format spécifié. Je souhaite que les éléments affichés dans le composant WebPart soient liés à leurs vues de détail ListItem. Cependant, je ne vois pas une propriété sur la liste elle-même qui me dirait quelle vue est la vue DETAIL par défaut pour la liste (c'est-à-dire que le détail de la liste de blogs est Post.aspx). Est-ce que cela vient de la définition de la liste? Comment pourrais-je obtenir cette information par programme? J'essaie d'éviter de coder en dur toute information de liste basée sur le type de liste.Vue par défaut de l'élément de liste par défaut Sharepoint

Répondre

6

Jetez un oeil à SPList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url.

Je pense que c'est ce que vous cherchez. Vous devrez ajouter le SPListItem.ID sur la chaîne de requête pour qu'elle sache quel élément de liste afficher.

using (SPWeb myWeb = GetMyWeb()) // GetMyWeb gets a reference to a SPWeb object 
{ 
    SPList myList = GetMyList(myWeb); // GetMyList gets a reference to a SPList object 
    SPListItem myItem = GetMyListItem(myList); // GetMyListItem gets a reference to a SPListItem object 
    string url = String.Format("{0}/{1}?ID={2}", 
     myWeb.Url, 
     myList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url, 
     myItem.ID); 
} 

Il est également une bonne pratique pour ajouter &Source=/url/to/current/page à la chaîne de requête afin que les utilisateurs seront redirigés vers la page ils sont partis quand ils cliquent sur Annuler/Fermer les boutons sur les formes d'édition ou d'affichage.

+0

Ça a bien fonctionné! Merci. –