WSS3 — установка значения по умолчанию для SPFieldType.Boolean после создания

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

           //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, и ни один из них не сработал. Кто-нибудь знает, как установить значение по умолчанию или что я делаю неправильно?

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


person rgimmy    schedule 07.10.2010    source источник
comment
Я получаю бул? введите, когда я запрашиваю значение поля, со свойством hasValue как ложным, если не указано значение по умолчанию, и поле только что было создано в db. Это состояние обрабатывается так, чтобы в коде отображалось как ложное, но проблема в том, что мне нужно установить значение по умолчанию, и даже когда я использую описанные выше методы, оно всегда возвращает нулевое состояние поля.   -  person rgimmy    schedule 08.10.2010


Ответы (2)


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

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

Вам не нужно обновлять список или передавать true методу SPField.Update.

person Maksymilian Mulawa    schedule 18.08.2011

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

person Rich Bennema    schedule 08.10.2010