2010-10-07 2 views
2

Я использую WSS3 и C# для создания сайта, и я создаю класс для изменения полей в списках после их создания. Я уже создал тип SPField.Boolean без значения по умолчанию, но после обновления мне нужно, чтобы значение по умолчанию было установлено равным true. Мой текущий код, который не работает следующим образом:WSS3 - установка значения по умолчанию для SPFieldType.Boolean после создания

  //web is already defined as the current web 
      var list = web.Site.RootWeb.Lists["ListWithFieldOnIt"]; 
      var field = list.Fields.GetField("booleanfield"); 
      field.DefaultValue = "1"; 
      field.Update(true); 
      list.Update(true); 

Я попытался изменить значение по умолчанию с помощью Sharepoint экземпляра и Sharepoint менеджера 2007 и ни один из них работал. Кто-нибудь знает какой-либо способ установить значение по умолчанию или то, что я делаю неправильно?

Заранее спасибо

+0

Я получаю bool? type, когда я запрашиваю значение поля, с свойством hasValue как false, если значение по умолчанию не указано, и поле только что было создано в db. Это состояние обрабатывается, чтобы отображаться как ложное в коде, но проблема в том, что мне нужно установить значение по умолчанию, и даже когда я делаю это с помощью вышеописанных методов, он всегда возвращает нулевое состояние поля. – rgimmy

ответ

1

Код ниже должен быть более чем достаточно, чтобы обновить определение списка полей:

 var list = web.Site.RootWeb.Lists["ListWithFieldOnIt"]; 
     var field = list.Fields.GetField("booleanfield"); 
     field.DefaultValue = "1"; 
     field.Update(); 

Вам не нужно, чтобы обновить список, или передать «истинный» методу SPField.Update.

2

Похоже, что вы делаете это правильно в соответствии с Programmatically setting the default value of a SPFieldBoolean field. Я не вижу ничего плохого. Мое единственное предложение было бы попробовать вызовы Update без логического параметра. Из MSDN SPField.Update Method (Boolean), по-видимому, предназначен для столбцов сайта, а не для столбцов в списке. Всякий раз, когда я обновляю поле или список в коде, я почти всегда использую метод без параметров.

Смежные вопросы