Afficher le menu contextuel dans Sharepoint les éléments de liste sur une autre colonne au lieu de la colonne de titre?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/16766

  •  16-10-2019
  •  | 
  •  

Question

Dans SharePoint listes, nous pouvons définir de nouveaux Affichage et sélectionnez les colonnes que nous voulons montrer.
Je ne veux pas montrer la colonne de titre mais je veux aussi montrer le menu contextuel par défaut pour the0 articles sur la liste.
Comment puis-je changer la valeur par défaut « (lié à l'élément avec le menu Edition) » à une autre colonne au lieu de la colonne « Titre »?

Était-ce utile?

La solution

i a trouvé la solution. il est vraiment simple:

    SPList list = site.RootWeb.Lists["Tasks"];
    SPField field = list.Fields["Priority"];
    field.ListItemMenu = true;
    field.ListItemMenuAllowed = SPField.ListItemMenuState.Required;
    field.Update();
    list.Update();

et voilà tout.

Autres conseils

Vous pouvez ajouter ces options au format XML Champ -. LinkToItem="TRUE" LinkToItemAllowed="Required" ListItemMenu="TRUE" à afficher l'option Menu contextuel

Il ressemble à:

    <Field Type="Text" ID="{87AC637E-BB54-48A4-BB7A-93973F6814A1}" StaticName="Country"
 LinkToItem="TRUE" LinkToItemAllowed="Required" ListItemMenu="TRUE" ClassInfo="Menu"
 AuthoringInfo="$Resources:core,Linked_Item_With_Menu;" Name="Country" 
DisplayName="$Resources:resource,Field_Country;" Required="TRUE"
></Field>

Tu ne vas pas être en mesure de le faire sans déployer une nouvelle colonne à travers une fonction.

En regardant comment le titre en cours avec la colonne de menu est généré:

<Field ID="{<a new guid here>}" Name="LinkTitle" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="LinkTitle" Group="$Resources:core,Base_Columns;" ReadOnly="TRUE" Type="Computed" DisplayName="$Resources:core,Title;" DisplayNameSrcField="Title" ClassInfo="Menu" AuthoringInfo="$Resources:core,Linked_Item_With_Menu;">

    <FieldRefs>
        <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" />
        <FieldRef ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" Name="LinkTitleNoMenu" />
        <FieldRef ID="{1344423c-c7f9-4134-88e4-ad842e2d723c}" Name="_EditMenuTableStart2" />
        <FieldRef ID="{2ea78cef-1bf9-4019-960a-02c41636cb47}" Name="_EditMenuTableEnd"/>
    </FieldRefs>

    <DisplayPattern>
        <FieldSwitch>
            <Expr>
                <GetVar Name="FreeForm" />
            </Expr>
            <Case Value="TRUE">
                <Field Name="LinkTitleNoMenu" />
            </Case>
            <Default>
                <Field Name="_EditMenuTableStart2" />
                <Field Name="LinkTitleNoMenu" />
                <Field Name="_EditMenuTableEnd" />
            </Default>
        </FieldSwitch>
    </DisplayPattern>
</Field>

Ensuite, il semble que vous pourriez vous en sortir avec le changement des références à LinkTitleNoMenu au nom interne du champ que vous souhaitez afficher. Cependant, vous devez vous assurer que la colonne que vous faites référence à une colonne est du site.

ASSUREZ également de modifier les noms statiques et affichage de la colonne (en remplacement des « LinkTitle » avec quelque chose de nouveau de votre choix).

Essayez ce code

SPList _list = _web.Lists["My List"];
SPField _field = _list.Fields["Name"];
_field.ListItemMenu = true;
_field.LinkToItemAllowed = SPField.ListItemMenuState.Required;
_field.ListItemMenuAllowed = SPField.ListItemMenuState.Required;
_field.Update();
_list.Update();

La meilleure façon est de modifier votre point de vue dans SharePoint Designer:

Aller au SPD 2013-> Site-> Votre Liste-> Votre vue.

Ajoutez ensuite ces deux attributs à votre FieldRef comme ce code:

<FieldRef Name="Title" ListItemMenu="TRUE" linkToItem="TRUE"/>

Pour être plus explicite vous trouvez dans la vue> ViewFields

<View Name="{D114F7F6-F87F-4A9F-BF24-D2A52B8BC6A7}" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" Type="HTML" DisplayName="Tous les documents" Url="YourURl" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/15/images/dlicon.png?rev=23" ><Query><OrderBy><FieldRef Name="FileLeafRef"/></OrderBy></Query><ViewFields><FieldRef Name="Title" ListItemMenu="TRUE" linkToItem="TRUE"/></ViewFields><RowLimit Paged="TRUE">30</RowLimit><Aggregations Value="Off"/><JSLink>clienttemplates.js</JSLink><XslLink Default="TRUE">main.xsl</XslLink><Toolbar Type="Standard"/></View></XmlDefinition>

La réponse de Yuri:

LinkToItem="TRUE" LinkToItemAllowed="Required" ListItemMenu="TRUE"

a bien fonctionné pour moi. Je suis allé les colonnes dossier dans VS 2015 et je suis allé à la définition xml élément et ajouté ces propriétés à la colonne que je veux que le menu contextuel apparaisse comme ceci:

    <?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">  
  <Field
       ID="{48af9b3e-3c9d-42a2-a226-b20c2db16127}"
       Name="ProjectName"
       DisplayName="Project Name"
       Type="Text"
       Required="FALSE"
       LinkToItem="TRUE"
       LinkToItemAllowed="Required"
       ListItemMenu="TRUE"
       Group="Custom Site Columns">
  </Field>
</Elements>

Après avoir changé les attributs, je suis allé dans le dossier Sites et a ouvert le concepteur, enlevé l'ancienne colonne et l'a ajouté à nouveau. Je suis ensuite allé au schéma de liste à vérifier si les attributs sont présents dans le nœud. Dans le nœud Voir, je puis enlevé l'élément LinkToMenu. Après avoir commis tous les changements, j'ai couru l'application et le menu contextuel est maintenant ajouté à la colonne I désiré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top