C# WSS3-创建后在SPFieldType.Boolean上设置默认值

C# WSS3-创建后在SPFieldType.Boolean上设置默认值,c#,sharepoint,spfield,C#,Sharepoint,Spfield,我正在使用WSS3和C#来创建站点,我正在创建一个类来在创建列表后更改列表中的字段。我已经创建了一个SPField.Boolean类型,没有默认值,但是升级后我需要将默认值设置为true。我当前不工作的代码如下所示: //web is already defined as the current web var list = web.Site.RootWeb.Lists["ListWithFieldOnIt"]; var fiel

我正在使用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 manager 2007更改默认值,但这两种方法都不起作用。有人知道设置默认值的方法吗?或者我做错了什么


提前感谢

看起来您是按照以下步骤正确操作的。我看不出有什么真正的问题。我唯一的建议是尝试不带布尔参数的更新调用。从MSDN来看,似乎是指站点列,而不是列表中的列。每当我在代码中更新字段或列表时,我几乎总是使用无参数更新方法。

下面的代码应该足以更新列表字段定义:

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

您不需要更新列表或将'true'传递给SPField.update方法。

我得到一个布尔值?当我查询字段值时键入,如果没有指定默认值,并且字段刚刚在数据库中创建,则hasValue属性为false。该状态被处理为在代码中显示为false,但问题是我需要设置一个默认值,即使使用上述方法,它也总是返回字段的null状态。