2017-06-12 38 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項目以找到它。只要你有一個編輯上下文,它應該更新。 –

相關問題