Sharepoint html 元素命名约定,由 Sharepoint Controls 提供

Posted

技术标签:

【中文标题】Sharepoint html 元素命名约定,由 Sharepoint Controls 提供【英文标题】:Sharepoint html element naming conventions, by Sharepoint Controls 【发布时间】:2013-11-18 08:07:30 【问题描述】:

有几次我尝试在 Sharepoint Designer 中使用 css、htmljavascript 自定义 SP2007 页面;但是,在 Sharepoint Designer 中,我无法直接访问所需的元素,因为它们是由 Sharepoint 控件(例如 Web 部件或数据视图)生成的,并且仅在页面在浏览器中呈现后才会出现。我使用 IE 的 F12 来跟踪我希望更改的元素。然后我可以看到可以在我的 javascript 或 css 中使用的标识符,例如 name 或 id。

示例 1:SP2007 为输入文本框生成“name=ctl00$PlaceHolderMain$g_ba9196a9_2842_4607_b048_9a443cb4def5$ff2_1$ctl00$ctl00$BooleanField”。我根据需要使用该名称来操作文本框。

示例 2:SP2007 为我用来获取用户全名的“欢迎”文本生成“id=zz6_menu”。

到目前为止,这一切都很好。我是在诱惑命运吗?

有人可以让我参考讨论这些名称和其他 Sharepoint Control 元素标识符是如何生成的参考吗?

它们稳定吗?如果我使用我的 SP 版本开发的应用程序没有更新到更高版本的 SP,我可以指望它们是相同的吗?即使在这种情况下,我认为我可以简单地更新到由新版本的 SP 创建的标识符。

这是一个好习惯吗?还有其他的cmets吗?

欢迎所有回复。

谢谢。

【问题讨论】:

【参考方案1】:

SharePoint 基于 ASP.NET,这就是自动生成 ID 的原因。

参见article。 您不应该使用它们来识别 css 或 js 上的元素。

不要编写引用控件的代码使用 生成的 UniqueID 属性。您可以将 UniqueID 属性视为 处理(例如,通过将其传递给进程),但您不应该 依赖于它具有特定的结构。

在我看来,最好的方法是依赖 css 类,因为它们不是自动生成的,也不应该有太大的变化。

无论如何,如果你升级到 SP2010 或 2013,你的很多修改将不再起作用,因为结构和 css 发生了变化......

【讨论】:

以上是关于Sharepoint html 元素命名约定,由 Sharepoint Controls 提供的主要内容,如果未能解决你的问题,请参考以下文章

如果xml元素命名约定与POJO属性命名约定不同,则发送到Spring Boot REST API的XML元素不会映射到POJO

UI元素(标签,按钮等)的Swift命名约定

C++,Java编程中 标识符 常见命名约定

有没有办法使用Microsoft.SharePoint.Client命名空间与其他用户创建新的列表项

html/css + MVC 的命名约定?

在 Sharepoint 中显示特定共享文档文件夹的通知