的标题说,一切关于我的问题Sitecore的C# - 在同一文件夹向上/向下移动一个项目
在Sitecore的6.6我要订购一个文件夹中的项目,我一直在谷歌它与数天没有成功。
任何人都可以帮忙吗?我试过设置__Sortorder字段,但我得到一个错误,说该属性是只读的。
的标题说,一切关于我的问题Sitecore的C# - 在同一文件夹向上/向下移动一个项目
在Sitecore的6.6我要订购一个文件夹中的项目,我一直在谷歌它与数天没有成功。
任何人都可以帮忙吗?我试过设置__Sortorder字段,但我得到一个错误,说该属性是只读的。
从你写的文章( “但我得到一个错误,指出该属性为只读” ),在更改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
__Sortorder模板字段有一个“只读”复选框,您可以使用它来允许写入字段。
您可以使用主菜单中的排序按钮:
或键盘快捷键:
我想通过代码在C#中做到这一点。你能告诉我,我到底能找到那个复选框吗?也许如果我改变它的价值,它会工作.. –
对不起,这个问题并没有表明你想以编程方式做到这一点。它在基本模板模板iirc中。您可以搜索__Sortorder项目以找到它。只要你有一个编辑上下文,它应该更新。 –
属性或索引器'Sitecore.Collections.FieldCollection.this [Sitecore.Data.ID]'不能分配给 - 它是只读的 –
我的错误。代码固定。它应该是'item [Sitecore.FieldIDs.Sortorder] =“25”;'而不是'item.Fields [Sitecore.FieldIDs.Sortorder] =“25”;' –
你应该更新你的答案。谢谢你:-)问题是这个语法“item [Sitecore.FieldIDs.Sortorder]”,尽管在开始时也是这样。 –