首页 > 代码库 > SharePoint 2013 中文站点更新列表字段的标题(Title)不能work
SharePoint 2013 中文站点更新列表字段的标题(Title)不能work
本文讲述SharePoint 2013 中文站点更新列表字段的标题(Title)不能work的解决方案。
笔者的项目环境是个Varation的站点集,有中文和英文两个子站点。
但是下面创建不修改字段标题的代码,修改标题部分在英文站点里面可以工作,但中文站点里面没有效果:
string dateField = myList.Fields.Add("DateFiled", SPFieldType.DateTime, false, false, null); SPFieldDateTime dateFieldColumn = myList.Fields["DateFiled"] as SPFieldDateTime; dateFieldColumn.DisplayFormat = SPDateTimeFieldFormatType.DateOnly; string dateFieldColumnColumnTitle = "Date Field"; if (language == "zh-cn") { dateFieldColumnColumnTitle= "日期字段"; } dateFieldColumn.Title = dateFieldColumnColumnTitle; dateFieldColumn.PushChangesToLists = true; dateFieldColumn.Update(true); dateFieldColumn.TitleResource.SetValueForUICulture(web.UICulture, dateFieldColumnColumnTitle); dateFieldColumn.TitleResource.Update(); myList.Update();
后来查了下,用reflector 查看 SPField.Title 的set 代码
发现在我这种条件下,刚好不会更新DisplayName,可能是微软的一个Bug 吧。
于是果断自己更新SchemaXml 后终于可以在中文站点正常工作了
string dateField = myList.Fields.Add("DateFiled", SPFieldType.DateTime, false, false, null); SPFieldDateTime dateFieldColumn = myList.Fields["DateFiled"] as SPFieldDateTime; dateFieldColumn.DisplayFormat = SPDateTimeFieldFormatType.DateOnly; string dateFieldColumnColumnTitle = "Date Field"; if (language == "zh-cn") { dateFieldColumnColumnTitle= "日期字段"; } dateFieldColumn.Title = dateFieldColumnColumnTitle; dateFieldColumn.PushChangesToLists = true; dateFieldColumn.SchemaXml = dataFieldColumn.SchemaXml.Replace( "DisplayName=\"DateField\"", string.Format("DisplayName=\"{0}\"", dateFieldColumnColumnTitle)); dateFieldColumn.Update(true); dateFieldColumn.TitleResource.SetValueForUICulture(web.UICulture, dateFieldColumnColumnTitle); dateFieldColumn.TitleResource.Update(); myList.Update();
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。