2010-07-23 70 views
0

我有一个网站列,我编程删除使用下面的代码。我以前已经删除了对该字段的所有引用。但是,即使没有错误,它也会转到fieldtodelete.Delete()并逐步通过下一行。但是,当我使用SPM2007或通过UI检查Site Column集合时,网站列仍然存在。网站列不会被删除

 Dim fieldtodelete As SPField 
     Try 
      fieldtodelete = site.RootWeb.Fields.GetFieldByInternalName(name) 
      'site.RootWeb.Fields.GetFieldByInternalName(name) 
      fieldtodelete.Delete() 
     Catch ex As Exception 

      Console.WriteLine("Field: {0} was not deleted", name) 
      Return 0 
     End Try 

关于为什么sharepoint会这样做的任何想法?此外,还有两个同名的字段,我不确定这是否会对此产生直接影响。我想删除这两个。

感谢

回答

1

由于有2个字段名称相同,其内部名称是比名称可能不同。你确定线

fieldtodelete = site.RootWeb.Fields.GetFieldByInternalName(name) 

实际上是返回一个有效的SPField吗?如果不是,您将需要找到字段的内部名称,这些名称不一定与名称匹配。

编辑:既然你说你得到的领域回来,我意识到你是不是在删除字段后调用site.RootWeb.Update()。这应该解决这个问题。

+0

我确实证实我得到了这个领域。我也尝试过使用ID的变体。 但当我调用删除功能,它只是不会让它删除。 – Kunatz 2010-07-25 03:50:57

+0

啊,看看我的编辑,应该照顾它。 – 2010-07-25 15:03:56