我有一个SharePoint 2007列表,它有6个站点列,希望有两种NewForm.ASPX页面。当用户单击newItem时,它应仅显示3个站点列,并且应在高级模式下链接,当用户单击高级模式链接时,应显示所有6个站点列,如果用户使用用户,则应预先填充值已经以简单模式输入一些信息。用户应该能够从高级模式中使用简单模式。

我也想在标签上显示当前用户的名称。

如何实现? Dowe需要写某种JavaScript?

有帮助吗?

解决方案

您可以很容易地使用 Sputility.js (完全披露这是我维护的库)。您可能会将其全部放在NewForm.aspx上的内容编辑器网络中。

您将拥有“高级模式”链接,该链接将切换显示/隐藏字段。使用sputility.js的示例:

SPUtility.GetSPField('Field A').Hide(); // or Show() after they click the link
SPUtility.GetSPField('Field B').Hide();
SPUtility.GetSPField('Field C').Hide();

让我知道您是否选择走这条路线,我可以帮助其余的。

其他提示

JavaScript似乎是要在页面上添加一些动态行为的方法,但是显然您不需要服务器中的任何其他信息。

您的代码必须:

  • 确定需要隐藏的3行
  • 使它们看不见(显示:无或可见性:隐藏)
  • 点击切换可见性

JavaScript还应允许您检索当前的用户名(显示名称或更好的用户帐户)。

另一种方法是使用您的编辑形式充当“高级表单”(假设您希望在用户编辑列表项目时可见所有6个字段)。然后,当用户单击“确定”时,一个简单的重定向将带您进入编辑/高级表单,并保留输入的值。

对于重定向,显而易见的问题是如何在没有项目ID的情况下重定向到项目的编辑表格? (直到保存列表项目之前,ID才创建)。尝试Marc D Anderson的SPServices库 - http://spservices.codeplex.com/. 。马克(Marc)写了一个函数,以专门解决此问题 - > $()。spservices.spredirectwithid。

您还可以使用MARC的SPServices库使用$().spservices.spgetCurrentuser实用程序显示当前用户名(以及更多)。

许可以下: CC-BY-SA归因
scroll top