C# Sharepoint UpdateList方法:新创建的列不可见

C# Sharepoint UpdateList方法:新创建的列不可见,c#,sharepoint-2007,C#,Sharepoint 2007,我工作过。它正在成功地工作。 但我面临的问题是: 新列在列表中不可见(我尝试设置Required=“TRUE”) 我尝试比较可见列和不可见列的字段值。 我发现的区别是:可见列(手动创建)不包含版本值。 我正在创建的wereas专栏拥有它 所以我尝试将null值传递给“ndVersion.value” 但它仍然不起作用,而且自动地给这个版本增加了一些价值 你能帮我解决这个问题吗 我试着给出解决方案 但它不再起作用了(尝试将ReadOnly属性设置为“FALSE”在浏览器中将列添加到列表时,实际上会

我工作过。它正在成功地工作。 但我面临的问题是:

新列在列表中不可见(我尝试设置Required=“TRUE”)

我尝试比较可见列和不可见列的字段值。 我发现的区别是:可见列(手动创建)不包含版本值。 我正在创建的wereas专栏拥有它

所以我尝试将null值传递给“ndVersion.value”

但它仍然不起作用,而且自动地给这个版本增加了一些价值

你能帮我解决这个问题吗

我试着给出解决方案


但它不再起作用了(

尝试将ReadOnly属性设置为“FALSE”

在浏览器中将列添加到列表时,实际上会发生以下几种情况:

  • 字段被添加到列表中
  • 字段添加到列表内容类型中
  • 字段将添加到默认视图中
使用代码添加列时,可能只修改列表,而不修改内容类型(定义新表单/编辑表单)或视图(定义列表视图)


MSDN上有大量关于这方面的有用信息


我将使用Microsoft.Sharepoint.dll提供的对象模型,而不是使用web服务

当您向内容类型添加新列时,Sharepoint中会出现问题,因为更改并不总是下推到列表中。我认为当您编辑内容类型时,Sharepoint UI会为您这样做,但当您自己在代码中这样做时,您必须确保您的更改被下推到列表中

有两种方法可以通过编程方式将内容类型数据添加到列表中

  • 通过schema.xml->然后您必须让列表继承您的内容类型,但您仍然必须列出您要从内容类型使用的所有字段
  • 通过代码->将您的字段添加到内容类型,但是您必须再次将内容类型添加到列表中,以确保列表中填充了所有字段

Thanx Tom,但我不知道如何修改列表的“内容类型和视图”?能否提供示例代码链接?我添加了一些代码-当然,您需要根据自己的需求进行扩展,但这些集合/对象应该为您提供一个良好的起点。
                var field = list.Fields[fieldName];

                var ctype = list.ContentTypes[contentTypeId];
                var fieldref = new SPFieldLink(field);
                ctype.FieldLinks.Add(fieldref);
                ctype.Update();

                var view = list.Views[viewName];
                view.ViewFields.Add(field);
                view.Update();