2013-02-18 57 views
2

我需要使用editframe让前用户修改一些复选框领域Sitecore的:editframe

  1. 我创建了一个新的编辑框按钮,并设置只,我想前用户编辑这些字段。例如:Core DB - >/sitecore/content/Applications/WebEdit/Edit Frame Buttons /(编辑按钮文件夹)/(field editor button)。在由前端用户编辑的字段中,我将其设置为标题。

  2. 在我sublayout,我有这样的代码

    <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. 代码背后

    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(); 
    

当我点击页面编辑器中编辑框上,在弹出的对话框不有我的领域(标题)来修改它。任何建议?

答: 我Sitecore的编辑框的数据源的谷歌升技与此链接 http://blog.jan.hebnes.dk/2011/12/using-sitecore-editframe-with.html

而不是使用后面的代码最终如由马亭博斯,我修改我的代码从分组到以下。

<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> 

回答

2

您是否尝试过设置Editframe的DatasSource?

例如EditField.DataSource = item.Paths.FullPath;

+0

然后编辑框将需要在ItemTemplate中。 – techphoria414 2013-02-18 13:03:12

+0

@ techphoria414你的意思是编辑框只能在数据模板中使用吗?即使我使用sublayout通过使用数据绑定来显示来自其他模板的其他字段,而不工作? – WenHao 2013-02-19 00:53:58

+0

不,我的意思是EditFrame一次只能编辑一个项目,AFAIK。你做对了。 – techphoria414 2013-02-19 15:33:51

0

你几乎在那里。不应该使用“FullPath”。试试这个代替

DataSource="<%# ((Sitecore.Data.Items.Item)Container.DataItem).Paths.FullPath %>"