如何在sharepoint 2010中验证页面标题长度?

时间:2010-07-23 08:56:16

标签: sharepoint validation sharepoint-2010

为了帮助导航,我们希望用户只创建标题小于或等于30个字符的页面。是否有一种相对简单的方法可以实现这一目标?我见过一个使用名为PreSaveAction的方法的javascript解决方案,但它并不是我正在寻找的,因为它必须在网站范围内工作(无论它们是在网站设置还是在使用功能区的前端gui)

如果有帮助,我们目前正在通过visual studio中的功能部署我们的内容类型。

编辑:另外这个也应该限制网址的长度对吧?例如,我们希望我们的用户不要创建非常长的页面名称 - 这不是用户友好的等等 - etc-etc-etc.-etc.aspx

3 个答案:

答案 0 :(得分:2)

我认为你最好的选择是实现一个列表项事件接收器。您可以使用ItemAddingItemUpdatingItemFileMoving事件来将URL清理为较短的长度,或者抛出错误。项目事件接收器是万无一失的,因为它在服务器上运行而不管客户端,无论是Office,Windows资源管理器,SOAP还是Web UI。

接收者可以与内容类型或个人列表相关联。如果您与内容类型相关联,并选择项目作为您的内容类型,那么瞧,它是通用的。如果要在所有网站和网站集中强制它,请查看功能订书机。我们的想法是,您可以在所有现有站点上激活事件接收器功能,并且订书机功能将在以后的所有站点上为您激活它。如果您将该功能设为隐藏功能,则您的用户将无法将其关闭。

如果你真的想要全力以赴,你可以通过一点javascript验证自定义用于创建新页面的表单,或者只在文本框中自定义MaxLength;但是,我更愿意避免自定义系统文件。

祝你好运!

答案 1 :(得分:1)

您可以做的最好的事情是更改创建页面的文件,这是SharePoint 2007技巧,但它也适用于2010。当您说新页面为 / _ layouts / CreatePublishingPageDialog.aspx 时弹出的页面会复制此页面&称之为 / _ layouts / CreatePublishingPageDialog_new.aspx 或任何你想要的。在新页面中添加您的验证,以便您可以将标题限制为30个字符。你仍然可以勾选Button click& amp;的事件处理程序。限制页面URL的长度。

现在我们有一个自定义页面将执行所有验证,下一步是打开此页面而不是原始页面。您可以使用此article中的步骤来实现此目的。请注意,您需要编辑文件 SiteAction.xml 文章谈论页面编辑工具栏,但您也要对siteaction执行相同的操作。此文件的完整副本存在于 C:\ Program中Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 14 \ TEMPLATE \ LAYOUTS \ EditingMenu \ SiteAction.xml

编辑:This链接有关于如何自定义CreatePage.aspx(MOSS)的参考

答案 2 :(得分:0)

我想我可能已经找到了我自己优雅的答案,不需要任何代码:)我可以通过转到页面库设置&gt;来验证页面库。验证设置。如果我在公式字段=LEN(Title)<=30中使用它,它就会完全按照我的要求进行操作。

然而,添加页面对话框仍有一些奇怪的行为,虽然它显示错误但仍然在草稿中创建页面:/我将不得不查看它。