sitecoresitecore6page-editor

sitecore: editframe


I need to use editframe to let the front user to modify some checkbox fields

  1. I create a new edit frame button and set only those fields that I want front user to edit. For example : Core DB -> /sitecore/content/Applications/WebEdit/Edit Frame Buttons/(edit button folder)/(field editor button). In the fields to be edited by front user, I have set it to Headline.

  2. In my sublayout, I have this code

    <sc:EditFrame ID="EditField" runat="server" Buttons="/sitecore/content/Applications/WebEdit/Edit Frame Buttons/EditFields">
    <div id="whatyoumissed">
        <asp:ListView ID="ListView1" runat="server">
            <LayoutTemplate>
                <ul style="list-style-type: none;" >
                    <asp:PlaceHolder runat="server" ID="itemplaceholder"></asp:PlaceHolder>
                </ul>
            </LayoutTemplate>
    
            <ItemTemplate>
                <li style="float: left;margin-left:20px;">
                    <sc:FieldRenderer ID="FieldRenderer2" runat="server" FieldName="Headline" 
                    Item="<%# Container.DataItem as Sitecore.Data.Items.Item %>" /> <br />
                    <sc:FieldRenderer ID="FR3" runat="server" FieldName="cb" Item="<%# Container.DataItem as Sitecore.Data.Items.Item %>" />
                </li>
            </ItemTemplate>
        </asp:ListView>
    
    </div>
    </sc:EditFrame>
    
  3. Code behind

        string queryPath = "/bla/bla/bla/bla/bla/bla/bla/bla/bla";
        var item = sc.Context.Database.GetItem(queryPath);
        var children = item.Children;
        ListView1.DataSource = children;
        ListView1.DataBind();
    

When I click on the edit frame in the page editor, the prompted box does not have the field (headline) for me to modify it. Any suggestion?

Answer: I have google abit of sitecore edit frame datasource and end up with this link http://blog.jan.hebnes.dk/2011/12/using-sitecore-editframe-with.html

Instead of using the code behind as shown by Martijn Bos, I modify my code from prev to the following.

<asp:ListView ID="ListView1" runat="server">
            <LayoutTemplate>
                <ul style="list-style-type: none;" >
                    <asp:PlaceHolder runat="server" ID="itemplaceholder"></asp:PlaceHolder>
                </ul>
            </LayoutTemplate>

            <ItemTemplate>
                <sc:EditFrame ID="EditField" runat="server" Buttons="/sitecore/content/Applications/WebEdit/Edit Frame Buttons/EditFields"
                DataSource="<%# ((Sitecore.Data.Items.Item)Container.DataItem).Paths.FullPath %>" >
                    <li style="float: left;margin-left:20px;">
                        <sc:FieldRenderer ID="FieldRenderer2" runat="server" FieldName="Headline" 
                        Item="<%# Container.DataItem as Sitecore.Data.Items.Item %>" /> <br />
                        <sc:FieldRenderer ID="FR3" runat="server" FieldName="cb" Item="<%# Container.DataItem as Sitecore.Data.Items.Item %>" />
                    </li>
                </sc:EditFrame>
            </ItemTemplate>
        </asp:ListView>

Solution

  • Have you tried setting the DatasSource of the Editframe?

    e.g. EditField.DataSource = item.Paths.FullPath;