如何使用代码重命名文档库中的标题列?

Posted

技术标签:

【中文标题】如何使用代码重命名文档库中的标题列?【英文标题】:How to rename title column in Document Library using code? 【发布时间】:2012-01-08 02:41:16 【问题描述】:

每个人都喜欢重命名列。标题栏是我的最爱,我似乎无法通过代码重命名它:

SPList list = web.Lists.TryGetList("MyList");
Guid guid = new Guid("fa564e0f-0c70-4ab9-b863-0177e6ddd247"); //Title column
SPField field = list.Fields[guid];
field.Title = "Testing";
field.Update();
list.Update();

title 列始终保留为标题列(至少是DisplayName)。当然,我不想重命名 InternalName 或任何疯狂的东西,但是由于您无法删除该列,如果它在我的 SP 上下文中实际上有一个有意义的名称会很好。

所以简而言之:如何使用代码重命名文档库中的标题列/字段(这意味着 C# - 不是 XML)?"

PS:当然它可以通过 UI 工作。转到文档库设置 > 列 > 标题,您可以根据自己的喜好更改名称(然后在所有视图上更新)


进一步调查表明它甚至不适用于SchemaXML
string schema = field.SchemaXML;
schema.Replace("Title", "NewNameHere");
field.SchemaXml = schema;
field.Update();
list.Update();

字段的显示名称仍然是“标题”。

【问题讨论】:

【参考方案1】:

本地化是个问题。我需要将TitleResource 附加到Title

field.TitleResource.SetValueForUICulture(new CultureInfo(1033), "My title");

作为explained here。

【讨论】:

谢谢。抱歉弹出旧的 QA - 如果我设置 list.Title = "ABC" 并更新,属性将成功设置,但标题不会更改。事件调试列表第二次看到我新设置的标题“ABC”值..

以上是关于如何使用代码重命名文档库中的标题列?的主要内容,如果未能解决你的问题,请参考以下文章

提交后修复Mercurial存储库中的重命名

iOS/iPadOS 中的 SwiftUI + DocumentGroup:如何重命名当前打开的文档

如何重命名 SQLite 数据库表中的列?

重命名数据库名称 - mysql [关闭]

如何在选择时重命名表中的单个列?

如何使用#[deprecated] 以向后兼容的方式重命名公共结构?