Loading...

All project content is available for reading, but you need to be a member of the project for Subversion checkout of source code, or to create/modify any information.
Login if you are a member. Apply here to request membership (open to all).

Table of Contents

    Itera.MultiProperty?

    Read blog posts

    <Itera:Property insted of <!EPiServer:Property

    Description of MultiProperty and how to use

    MultiProperty as container for user control data

    Problem:

    How to create an EPiServer property which contains other EPiServer properties.

    Why:

    Most properties in EPiServer are pretty specialized and are often dependent on each other to make the page show correctly.

    Some uses of a MultiProperty are:

    Links with user defined link name Images with width, height & alt text All type of lists containing one or more EPiServer property Dynamic list of pages/links/(or whatever) which could be managed by the editor (in edit mode) How: The main idea is to represent an EPiServer property as XML. Our MultiProperty stores all his children as XML and when it is used it unpacks this XML and creates each child property. Therefor the MultiProperty itself is extended from PropertyString which is good for storing text :) Since the MultiProperty is an property itself it can contain any number of other multi properties in any nested levels.

    In EPiServer 4 you could do the same, but you only had the function CreateChildControls, and the ParseValidation to work with. That gave a problem with who to retrieve to value of the child properties. With EPiServer CMS 5 and the introduction of the Control class this have changed, and the retrieving of child properties values can easy be done with the ApplyEditChange().

    One important thing to remember is that the property class is a part of the PageData instance. And all objects inside will be shared between all request for that page and property. I did forget this once time and had a Literal inside the property class, and added it to the Control class. That did give a lot of unsuspected errors :(

    If you want on a project page structured contact information to the project leader you had to add name, street 1, street 2, zip code, town and email as separate properties. That sure worked, but was a bit tiresome. And if I wanted to have the project participants also as a list I would have to add a lot of properties, or use a text property. Or wonder why this information isn’t coming from AD or user data :(

    There are two main usages for this property.

    1. As a list
    2. As an container for a static number of properties

    Download

    down.gif Download Now

    Source Code

    Browse the source online
    Check out source with TortoiseSVN

    Tickets

    Tickets for this component:

    #78
    delete dont work
    #88
    Null the property
    #93
    Not Firefox compatible
    #97
    LinkItemCollection
    #160
    Property is rendered incorrect together with the use of TinyMCE
    #235
    File does not exists when editing document

    Requirements

    Runtime:

    • EPiServer CMS 5 SP1
    • ASP.NET 2.0 or higher

    If you want to change and compile the source code:

    • Visual Studio 2005 SP1
    • UnleashIT

    Attachments