Domanda

C'è un modo per ottenere un nome di campo specifico da un modello con diverse sezioni per un controllo FieldRenderer?

f.ex. Ho un modello con le sezioni "dati" e "Dati2", entrambi hanno un unico testo-campo chiamato "Testo". C'è un modo per rendere la mia FieldRenderer ottenere il campo "Testo" nella sezione "Data2"

Sarebbe bello se uno dei suggerimenti qui sotto lavorato:

<sc:FieldRenderer ID="test" runat="server" FieldName="Text" Section="Data2" />

<sc:FieldRenderer ID="test" runat="server" FieldName="Data2/Text" />

BR Larre

È stato utile?

Soluzione

Anche se è sviluppato come questo di proposito (non vogliamo sviluppatori Sitecore perdere tempo nella sezione nomi), penso che ha senso per includere una cosa del genere. Permettetemi di elencare ciò come una richiesta di funzionalità.

Se si desidera avere questo know corretto funzionamento, si deve prima capire come la fieldRenderer sta lavorando. Si prende il via un gasdotto chiamato 'renderField'. Nella seconda fase di questo, è la lettura del fieldvalue:

Sostituire quello con la propria classe personalizzata con qualcosa di simile:

public void Process(RenderFieldArgs args)
{
    Assert.ArgumentNotNull(args, "args");
    if(args.RawParameters.Contains("Section"))
    {
        //Parse args.RawParameters
        //Extract Section data
        //Take args.Item.Template
        //Resolve section
        //Resolve fieldvalue
        //Set this field value as args.Results.FirstPart
    }
    if (!string.IsNullOrEmpty(args.FieldValue))
    {
        args.Result.FirstPart = args.FieldValue;
    }
    else
    {
        args.Result.FirstPart = args.Item[args.FieldName];
    }
}

Qualcosa nella linea di:

args.Result.FirstPart = args.Item[args.Item.Template.GetSection("sectionName").GetField(args.FieldName).ID];

Ma ora, con controlli di errore:)

Altri suggerimenti

Per documentazione ufficiale Sitecore, i nomi dei campi devono me unico attraverso le sezioni.

Questo è stato anche discusso qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top