2012-07-18 28 views
0

该方案是我尝试添加新的网站列,我需要更新架构定义。 第2次更新执行它说,现场没有发现,但它的存在,我甚至可以看到它的网站列功能后激活崩溃添加新网站列不起作用名称为“xx”的字段未找到

private void AddManagerField(SPWeb currentweb) 
     { 
      try 
      { 
       //Add new field to Site Columns 
       string managerFieldName = currentweb.Fields.Add(SponsoringCommon.Constants.FIELDS_SPONSORINGMANAGER_NAME, SPFieldType.User, false); 
       SPFieldUser managerField = currentweb.Fields.GetFieldByInternalName(managerFieldName) as SPFieldUser; 
       managerField.Group = SponsoringCommon.Constants.DEFAULT_TAXONOMY_TERMGROUP_NATIONALELOTERIJSPONSORING; 
       managerField.Update(); 


       SPFieldUser managerField2 = currentweb.Fields.GetFieldByInternalName(managerFieldName) as SPFieldUser; 

       string schemaXmlWithResourceTokens = managerField2.SchemaXmlWithResourceTokens; 
       int startIndex = schemaXmlWithResourceTokens.IndexOf("\"", schemaXmlWithResourceTokens.IndexOf("DisplayName=\"")) + 1; 
       int endIndex = schemaXmlWithResourceTokens.IndexOf("\"", startIndex); 
       int substringLength = endIndex - startIndex; 
       string value = schemaXmlWithResourceTokens.Substring(startIndex, substringLength); 
       schemaXmlWithResourceTokens = schemaXmlWithResourceTokens.Replace(value, "$Resources:SPNLSponsoring,Field_SponsoringManager_Name"); 
       managerField2.SchemaXml = schemaXmlWithResourceTokens; 
       managerField2.Update(); 


       SPContentTypeId dossierCTID = new SPContentTypeId(SponsoringCommon.Constants.CONTENTTYPES_DOSSIER_ID); 
       SPContentType dossierCT = currentweb.ContentTypes[dossierCTID]; 
       SPFieldLink managerFieldLink = new SPFieldLink(managerField2); 
       dossierCT.FieldLinks.Add(managerFieldLink); 
       dossierCT.Update(true); 
      } 
      catch (Exception ex) 
      { 
       Logger.LogError("error", "AddManagerField(SPWeb currentweb)", ex); 
       throw; 
      } 

     } 

回答

0

你检查的内部名称是相同的。

如果您有权访问服务器,请尝试获取该列的GUID并使用该GUID,因为这可以保证您正在查找正确的字段。

是您传递给此方法的网络中的字段?

对不起,看起来很简单,但一旦我坐下来,并通过我的代码(调试后),我通常发现我对所有的角度都嗤之以鼻。

希望这会有所帮助
Truez