Visualizzare il menu contestuale di SharePoint in voci di elenco su un'altra colonna, invece di colonna Titolo?

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

  •  16-10-2019
  •  | 
  •  

Domanda

liste di SharePoint, possiamo definire nuovo Visualizza e selezionare le colonne che vogliamo mostrare.
Io non voglio mostrare la colonna Titolo, ma voglio anche mostrare il menu predefinito contesto per the0 voci List.
Come posso modificare il valore predefinito "(legata al all'elemento con menu Modifica)" per un'altra colonna al posto di colonna "Titolo"?

È stato utile?

Soluzione

ho trovato la soluzione. è davvero semplice:

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

e questo è tutto.

Altri suggerimenti

È possibile aggiungere queste opzioni al campo xml -. LinkToItem="TRUE" LinkToItemAllowed="Required" ListItemMenu="TRUE" per visualizzare la voce del menu di contesto

Quindi sembra che:

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

Non hai intenzione di essere in grado di farlo senza distribuire una nuova colonna attraverso una funzione.

Guardando a come viene generato il titolo corrente con la colonna del menu:

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

Poi sembra che si potrebbe ottenere via con cambiando i riferimenti al LinkTitleNoMenu per il nome interno del campo che si desidera visualizzare. Tuttavia, è necessario assicurarsi che la colonna si fa riferimento ad è anche una colonna del sito.

Do anche assicurarsi di cambiare i nomi statici e di visualizzazione della colonna (che sostituisce out 'LinkTitle' con qualcosa di nuovo di vostra scelta).

Try this 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();

The Easiest way is to modify your view in SharePoint Designer :

Go to SPD 2013->Site->Your List->Your View .

Then add this two attributes to your FieldRef like this code :

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

To be more explicit you find it in the View > 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>

Yuri's answer:

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

worked fine for me. I went the the columns folder in VS 2015 and went to the element xml definition and added those properties to the column that I want the context menu to appear like this:

    <?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>

After changing the attributes, I went to the Sites folder and opened the designer, removed the old column and added it again. I then went to the list schema to double check if the attributes are present in the node. In the View node, I then removed the LinkToMenu element. After committing all the changes, I ran the app and the context menu is now added to the column I desired.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top