Come si fa a rimuovere i campi da un elenco personalizzato in SharePoint che sono stati aggiunti tramite la voce di menu 'Aggiungi da colonne del sito esistenti'?

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

  •  16-10-2019
  •  | 
  •  

Domanda

Ho un elenco personalizzato, e ho aggiunto un campo 'immagine pagina' Cliccando sul pulsante 'Aggiungi da colonne del sito esistenti' link sulla pagina delle impostazioni per la lista. Vorrei ora per rimuovere il campo, ma cliccando sul nome del campo nella pagina delle impostazioni rendimenti no 'Elimina' funzionalità.

È stato utile?

Soluzione

"immagine pagina" è un particolare tipo di campo SharePoint definito come Sealed . Ciò significa che non possono essere rimossi dall'interfaccia utente, una volta aggiunto. Tuttavia può essere rimosso a livello di codice:

SPList list = web.Lists["CustomTest"];
SPField f = list.Fields["Page Image"];
f.Sealed = false;
f.Update();
f.Delete();

Per riferimento, il campo è definito in C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\PublishingResources\PublishingColumns.xml.

Attribuzione di credito: il mio risposta su Stack Overflow.

Altri suggerimenti

Oltre ad essere sigillato, un campo può essere di sola lettura, nascosto e ecc Tutti questi fattori potrebbe impedire il campo dalla cancellazione. Il metodo più adatto per eliminare un campo della lista è la seguente:

public static bool RemoveField(SPField spField)
{
    if (spField == null)
    {
        WriteErrorToLog("spField is null! Please, provide a valid one");
        return false;
    }

    bool res = false;
    try
    {
        // check if it's a ReadOnly field.
        // if so, reset it
        if (spField.ReadOnlyField)
        {
            spField.ReadOnlyField = false;
            spField.Update();
        }

        // check if it's a Hidden field.
        // if so, reset it
        if (spField.Hidden)
        {
            spField.Hidden = false;
            spField.Update();
        }

        // check if the AllowDeletion property is set to false.
        // if so, reset it to true
        if (spField.AllowDeletion == null || !spField.AllowDeletion.Value)
        {
            spField.AllowDeletion = true;
            spField.Update();
        }

        // If the AllowDeletion property is set,
        // the Sealed property seems not to be examined at all.
        // So the following piece of code is commented.
        /*if(spField.Sealed)
        {
            spField.Sealed = false;
            spField.Update();
        }*/

        // If the AllowDeletion property is set,
        // the FromBaseType property seems not to be examined at all.
        // So the following piece of code is commented.
        /*if(spField.FromBaseType)
        {
            spField.FromBaseType = false;
            spField.Update();
        }*/

        // finally, remove the field
        spField.Delete();
        spField.ParentList.Update();

        res = true;
    }
    catch (Exception ex)
    {
        WriteErrorToLog(ex.Message);
    }

    return res;
}

public static bool RemoveField(SPList spList, string displayNameOrInternalNameOrStaticName)
{
    SPField spField = GetFieldByName(spList, displayNameOrInternalNameOrStaticName);
    if(spField == null)
    {
        WriteErrorToLog(string.Format("Couldn't find field {0}!", displayNameOrInternalNameOrStaticName));
        return false;
    }

    return RemoveField(spField);
}

public static void WriteErrorToLog(string errorMsg)
{
    // write error into log
}

Leggi il mio articolo Come Eliminare un Elenco campi / colonna di programmazione , per saperne di più.

Ho visto questo prima, quando si aggiungono campi che SharePoint considerano non cancellabile.

Probabilmente si dovrà eliminare a livello di codice o di uno strumento come SharePointManager

Come di nascondere il campo utilizzando gestire i tipi di contenuto?

Impostazioni elenco -> Impostazioni avanzate -> Consentire Gestisci tipi di contenuto Clicca su tipo di contenuto -> Clicca sulla pagina campo Immagine -> Seleziona Hidden

  1. In primo luogo va opzione iniziale a pagina predefinita a
  2. Fare clic sul nome della lista che si è creato.
  3. Fare clic su possibilità di impostazione elenco nella creazione riquadro della scheda.
  4. Fare clic sul nome di colonna opzione Colonne
  5. Quindi si ottiene la possibilità di cancellare. Stampa e verrà eliminato.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top