2010-07-23 39 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