0

有几次我尝试在 Sharepoint Designer 中使用 css、html 或 javascript 自定义 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 创建的标识符。

这是一个好习惯吗?还有其他意见吗?

欢迎所有回复。

谢谢。

4

1 回答 1

0

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

参考这篇文章。您不应该使用它们来识别 css 或 js 上的元素。

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

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

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

于 2013-11-06T21:51:34.357 回答