3

当然必须有一种简单的方法将一个简单的代码块放入母版页:(我尝试过使用明显的<%= "Hello, World!" %>语法,但不允许使用代码块。然后尝试了一个站点专栏,但不知道如何使用它们. 然后尝试了 web 区域,但母版页无法使用它们。尝试将 web 部件(这是超级难以制作和部署顺便说一句)放入页面布局,但它只是不呈现:/

我想要的只是在我的网站顶部显示今天的日期和我想使用的格式是DateTime.Today.ToString("ddd, d MMMM yyyy"). 我该怎么做?

(否则我将求助于javascript document.write!)

谢谢大家,

4

3 回答 3

6

推荐的解决方案是使用服务器端控件。正如你所说,为此开发一个 webpart 似乎有点矫枉过正。一个更简单的选择是使用一个简单的 .ascx 用户控件,然后在页面上引用它。 这篇文章解释了如何将用户控件添加到 Templates 文件夹,然后在您的母版页中引用它。

虽然对于这么简单的问题,我觉得你对 JavaScript 的想法其实还可以。并且它将允许您在用户的时区中显示当前时间,这在服务器端并不容易。为这类事情使用客户端代码似乎是一种 hack,但在 SharePoint 中使用 JavaScript 代码实际上是一个非常强大的工具。

于 2010-03-29T15:11:14.947 回答
3

您没有收到异常“此文件中不允许使用代码块”吗?

无论如何,默认情况下不允许页面中的代码。如果每个可以使用 SharePoint 设计器编辑页面的人都开始在其中放入一些代码,结果会怎样?

如果您选择这样做,请编辑 web.conf:

<PageParserPaths> 
    <PageParserPath VirtualPath="/_catalogs/masterpage/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" /> 
</PageParserPaths>
于 2010-03-29T14:52:42.790 回答
1

服务器端控件绝对是在母版页上放置自定义代码的推荐解决方案。这是一个更广泛的答案,几乎涵盖了您想做的任何事情。但是,它并不总是您的第一个和最后一个选择。

在您的情况下,您不一定需要编写自定义 Web 部件或服务器控件(并深入研究安全和部署需求)。在我看来,这太过分了。由于您已经可以访问 MasterPage,并且只需要日期/时间,因此您可以使用一些简单的 JavaScript 代码:

var now = new Date();
document.write(now.format("ddd, d MMMM yyyy"));

这当然会显示客户端的日期和时间,而不是服务器。在大多数情况下,这没什么大不了的,因为您可以利用 getTimezoneOffset() 来修复任何时区差异。

于 2010-08-16T18:45:04.843 回答