2013-02-18 2 views
2

мне нужно использовать editframe, чтобы передний пользователю изменять некоторые поля флажокSitecore: editframe

  1. создать новую кнопку редактирования кадров и установить только те поля, которые я хочу фронт пользователю редактировать. Например: Core DB ->/sitecore/content/Applications/WebEdit/Edit Frame Buttons/(папка с кнопками редактирования)/(кнопка редактора полей). В полях, которые нужно отредактировать передним пользователем, я установил его в Headline.

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

При нажатии на редактирования кадра в редакторе страниц, то запрос окно не есть поле (заголовок) для меня, чтобы изменить его. Любое предложение?

Ответ: У меня есть Google ABIT из Sitecore редактирование кадра источника данных и закончить с этой ссылкой http://blog.jan.hebnes.dk/2011/12/using-sitecore-editframe-with.html

Вместо того, чтобы использовать код позади, как показал Martijn Bos, я изменить мой код из пред к следующему.

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

например. EditField.DataSource = item.Paths.FullPath;

+0

И тогда рамка редактирования должна быть внутри ItemTemplate. – techphoria414

+0

@ techphoria414 Вы имеете в виду, что рамка редактирования работает только в шаблоне данных? И не работает, даже если я использую sublayout для отображения других полей из другого шаблона с помощью привязки данных? – WenHao

+0

Нет, я имею в виду, что EditFrame может редактировать только один элемент за раз, AFAIK. Вы поняли это правильно. – techphoria414

0

Вы почти там. Не следует использовать «FullPath». Попробуйте это вместо этого

DataSource="<%# ((Sitecore.Data.Items.Item)Container.DataItem).Paths.FullPath %>" 
Смежные вопросы