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

时间:2010-02-05 15:09:11

标签: c# sharepoint-2007

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

新列在列表中不可见(我尝试使用With Setting Required =“TRUE”)。

我试着计算可见和不可见列的字段值。 我发现的差异是:可见列(手动创建)不包含版本值。 我正在创建的那些列有它。

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

但它仍无法正常工作并自动为版本增加一些价值。

你可以帮帮我吗?

我尝试了Here给出的解决方案。

但它再次没有工作。 :(

4 个答案:

答案 0 :(得分:2)

当您在浏览器中向列表中添加列时,实际上会发生一些事情:

  • 字段已添加到列表
  • 字段已添加到列表内容类型
  • 字段已添加到默认视图

使用代码添加列时,您可能只是修改列表,而不是内容类型(定义新/编辑表单)或视图(定义列表视图)

                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();

答案 1 :(得分:0)

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

答案 2 :(得分:0)

答案 3 :(得分:0)

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

当您向内容类型添加新列时,Sharepoint中存在问题,这些列的更改并不总是下推到列表中。我认为Sharepoint UI会在您编辑内容类型时为您执行此操作,但是当您在代码中自己执行此操作时,您必须确保将更改下推到列表中。

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

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