2

我正在使用 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 更改默认值,但这些都不起作用。有谁知道设置默认值的任何方法或我做错了什么?

提前致谢

4

2 回答 2

2

看起来您根据Programmatically setting the default value of a SPFieldBoolean field正确执行了此操作。我看不出有什么真正的错误。我唯一的建议是尝试不带布尔参数的更新调用。从 MSDN 来看,SPField.Update 方法(布尔值)似乎适用于站点列,而不是列表中的列。每当我在代码中更新字段或列表时,我几乎总是使用无参数的 Update 方法。

于 2010-10-08T13:15:00.677 回答
1

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

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

您无需更新列表或将“true”传递给 SPField.Update 方法。

于 2011-08-18T14:24:13.160 回答