Egendefinert variantliste

Det følger vanligvis med et eksempel på varianthåndtering i butikkmalen. Denne passer ikke i alle tilfeller. I denne artikkelen finner du et eksempel på en mer generell måte å løse variantvisningen på.

Denne løsningen tar i utgangspunktet ikke høyde for hva som skiller de ulike variantene, om det er størrelse, farge, vekt, funksjonalitet etc. Det er bare en liste over de ulike variantene som finnes. Dermed må en ta høyde for at beskrivelsen av hver enkelt variant på være utfyllende nok.

Først har vi en artikkelliste:

<er:itemlist ID="listVariants" runat="server" RenderingName="ListElement.Shop.Product.ascx" />

Her definerer vi i utgangspunktet kun en ID og hvilken rendering som skal brukes. Det kan også være lurt å angi TemplateId til det feltsettet som brukes til varianter også.

Deretter må i kode angi hva som skal vises i listen. Koden er bare denne:

listVariants.Where = "ParentItemId = " + CurrentItemId;

Det vil si at den lister ut alle elementer som er barn av det elementet vi har valgt. Denne koden plasseres for Example inni Page_Load. Dersom det ikke finnes noe kode-blokk på siden, eller du ikke helt skjønner hva vi snakker om her, kan det også løses slik (komplett kode):

<er:itemlist ID="listVariants" runat="server" RenderingName="ListElement.Shop.Product.ascx" />

<script runat="server">
    //Angir hvilke varianter som skal vises
    protected override void OnLoad(EventArgs e) { base.OnLoad(e); listVariants.Where = "ParentItemId = " + CurrentItemId; }
</script>