2017-06-12 55 views

回答

2

从你写的文章( “但我得到一个错误,指出该属性为只读” ),在更改Sort Order字段值之前,您尚未开始编辑该项目。

最简单的代码是:

item.Editing.BeginEdit(); 
item[Sitecore.FieldIDs.Sortorder] = "25"; // or any other new value 
item.Editing.EndEdit(); 

Editing.BeginEdit()Editing.EndEdit()之前,每个项目变更后的操作需要。

在早期的Sitecore版本中,devs用于替代地使用using (new Sitecore.Data.Items.EditContext(item)),但从我记忆中不再推荐它。

这里是关于Sitecore的项目编辑样本文章:How to edit an Item in Code Behind

+0

属性或索引器'Sitecore.Collections.FieldCollection.this [Sitecore.Data.ID]'不能分配给 - 它是只读的 –

+1

我的错误。代码固定。它应该是'item [Sitecore.FieldIDs.Sortorder] =“25”;'而不是'item.Fields [Sitecore.FieldIDs.Sortorder] =“25”;' –

+0

你应该更新你的答案。谢谢你:-)问题是这个语法“item [Sitecore.FieldIDs.Sortorder]”,尽管在开始时也是这样。 –

1

__Sortorder模板字段有一个“只读”复选框,您可以使用它来允许写入字段。

您可以使用主菜单中的排序按钮:

  1. 选择项目移动/排序
  2. 打开主菜单
  3. 使用上/下/首页/尾按钮,在分拣部

或键盘快捷键:

  • 向上:(按Ctrl + Shift + Alt +向上)
  • 下:(按Ctrl + Shift + Alt +向下)
+0

我想通过代码在C#中做到这一点。你能告诉我,我到底能找到那个复选框吗?也许如果我改变它的价值,它会工作.. –

+0

对不起,这个问题并没有表明你想以编程方式做到这一点。它在基本模板模板iirc中。您可以搜索__Sortorder项目以找到它。只要你有一个编辑上下文,它应该更新。 –

相关问题