【问题标题】:Sitecore C# - move up / down an item in the same folderSitecore C# - 上/下移动同一文件夹中的项目
【发布时间】:2017-06-13 15:22:20
【问题描述】:

标题说明了我的问题

在 sitecore 6.6 上,我必须订购一个文件夹中的项目,我已经在谷歌上搜索了几天,但没有成功。

有人可以帮忙吗?我尝试设置 __Sortorder 字段,但我收到一条错误消息,指出该属性是只读的。

【问题讨论】:

    标签: sitecore


    【解决方案1】:

    根据您所写的内容(“但我收到一条错误消息,指出该属性是只读的”),您在更改 Sort Order 字段值之前尚未开始编辑该项目。

    最简单的代码是:

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

    Editing.BeginEdit()Editing.EndEdit() 在每次更改项目操作之前和之后都是必需的。

    在旧的 Sitecore 版本中,开发人员过去常常使用 using (new Sitecore.Data.Items.EditContext(item)),但据我所知,不再推荐它。

    这是一篇关于 Sitecore 项目编辑的示例文章:How to edit an Item in Code Behind

    【讨论】:

    • 无法将属性或索引器“Sitecore.Collections.FieldCollection.this[Sitecore.Data.ID]”分配给 -- 它是只读的
    • 我的错误。代码已修复。它应该是 item[Sitecore.FieldIDs.Sortorder] = "25"; 而不是 item.Fields[Sitecore.FieldIDs.Sortorder] = "25";
    • 你应该更新你的答案。谢谢你 :-) 问题是这个语法“item[Sitecore.FieldIDs.Sortorder]”,它在开头也使用过。
    【解决方案2】:

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

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

    1. 选择要移动/排序的项目
    2. 打开主菜单
    3. 使用排序部分中的向上/向下/第一个/最后一个按钮

    或者键盘快捷键:

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

    【讨论】:

    • 我想通过 C# 中的代码来做到这一点。你能告诉我在哪里可以找到那个复选框吗?也许如果我改变它的价值,它会起作用..
    • 抱歉,该问题并未表明您想以编程方式执行此操作。它在基本模板模板 iirc 中。您可以搜索 __Sortorder 项来找到它。只要您有一个编辑上下文,它就应该更新。
    猜你喜欢
    • 1970-01-01
    • 2011-02-06
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多