Sitecore如何编辑项目的标准字段值

时间:2015-09-14 19:56:04

标签: sitecore sitecore7 sitecore7.5

在Sitecore中我有一个项目。让我们说它的名字是weekDay。它有一个默认字段(标准字段)Sortorder。我想编辑这个字段并在其中放入一个字符串。但是下面的代码会给我System.NullReferenceException: Object reference not set to an instance of an object.

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

我在上面代码中的weekDay.Fields["Sortorder"].Value = "1";行遇到异常。

任何帮助都会非常感激。谢谢!

3 个答案:

答案 0 :(得分:1)

您的代码没问题。唯一的问题是该字段未被称为"Sortorder",它被称为"__Sortorder"。尝试:

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

大多数Sitecore标准字段都以双下划线为前缀,例如__Sortorder__Hidden__Display Name__Read Only等。

答案 1 :(得分: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。

答案 2 :(得分:0)

你能检查一下weekDay是否为空?我想weekDay项目为空

要编辑weekDay项目,您将拥有:

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