2015-09-14 62 views
1

在Sitecore中我有一個項目。可以說它的名字是weekDay。它有一個默認字段(標準字段)Sortorder。我想編輯這個字段並在其中放置一個字符串。但是,下面的代碼給我System.NullReferenceException: Object reference not set to an instance of an object.Sitecore如何編輯項目的標準字段值

switch (weekDay.Name.ToLower()) 
{ 
    case "monday": 
     weekDay.Editing.BeginEdit(); 
     weekDay.Fields["Sortorder"].Value = "1"; 
     weekDay.Editing.EndEdit(); 
     break; 
} 

我在這一行weekDay.Fields["Sortorder"].Value = "1";在上面的代碼變得異常。

任何幫助將非常感激。謝謝!!

回答

1

您的代碼就可以了。唯一的問題是該字段不叫"Sortorder",它被稱爲"__Sortorder"。請嘗試:

weekDay.Fields["__Sortorder"].Value = "1"; 

大多數Sitecore標準字段都帶有雙下劃線的前綴,例如, __Sortorder__Hidden__Display Name__Read Only

+0

非常感謝! – Kamran

0

你能檢查weekDay是否爲空?我想平日項爲空

要編輯平日的項目,你將有:

if (weekDay!=null) 
    { 
    using (new EditContext(weekDay)) 
    { 
     switch (weekDay.Name.ToLower()) 
        { 
         case "monday": 
          weekDay.Fields["__Sortorder"].Value = "1"; 
          break; 
        } 
     } 
     } 
+0

感謝您的答覆,但該項目不爲空。我試圖編輯一些其他字段(由我添加),我可以無誤地訪問它。 – Kamran

1

大多數標準的前綴字段是__(雙下劃線),因此字段名實際上是"__Sortorder"

weekDay.Fields["__Sortorder"].Value = "1"; 

// Or use the field ID from Sitecore.FieldIDs class 
weekDay.Fields[Sitecore.FieldIDs.Sortorder].Value = "1"; 

Sitecore.FieldIDs類包含許多領域ID,如果不是全部,標準字段。

相關問題