的標題說,一切關於我的問題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]」,儘管在開始時也是這樣。 –