Domanda

In una spaliare, quali campi sono necessari per aggiornare una voce di elenco?

SPQuery query = new SPQuery();
query.Query = @"
    <OrderBy>
        <FieldRef Name='ID' Ascending='true' />
    </OrderBy>";
query.ViewFields = string.Concat(
    "<FieldRef Name='ID' />",
    "<FieldRef Name='Title' />");
query.ViewFieldsOnly = true;
query.RowLimit = 2000; // Effective batch size.
query.QueryThrottleMode = SPQueryThrottleOption.Override;
.

Se eseguo listItem.Update() senza modificare alcun campo, l'aggiornamento non riesce con l'errore 'value does not fall within the expected range'.Ma se cambio ViewFieldsOnly su false, l'aggiornamento ha successo.La mia domanda è quali campi sono necessari per aggiornare correttamente un elemento di elenco (escluso tutti i campi che potrebbero essere stati modificati)?

È stato utile?

Soluzione

AFAIK Non è documentato da nessuna parte in cui i campi dovrebbero essere inclusi per essere in grado di eseguire un aggiornamento dopo la interrogazione con ViewFieldOnly impostato su TRUE, ma secondo spquery.viewfieldsonyonly e Aggiornamento di un SpliwsItem È tra l'altro ID, univoco, tipo oggetto, ...

Ma La mia raccomandazione è sicuramente non provare nemmeno, basta impostare Viewfieldonyonly to False, allora sei sicuro di ottenere ciò che è necessario anche nelle versioni future di SharePoint.

Altri suggerimenti

Ho anche avuto questo problema e sono riuscito a farli arrotondare.Ho incluso l'ID ListItem nel Viewfields ha quindi creato una nuova variabile SpliStem utilizzando list.getItembyID.È quindi possibile eseguire un ordine di elenco normale aggiornamento utilizzando questa nuova variabile.

        SPQuery q = new SPQuery();
        q.Query = "Query here";
        q.ViewFields = "...Fields Here...<FieldRef Name='ID' />";
        q.ViewFieldsOnly = true;

        foreach (SPListItem item in list.GetItems(q))
        {
            SPListItem i = list.GetItemById(int.Parse(item["ID"].ToString()));
            //code to update item here
            i.Update();
        }
.

Potrebbe non essere la soluzione migliore di sempre ma mi ha preso e correre.

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