sharepoint-2010 - SharePoint 2010 - DateTimeControl 样式问题

标签 sharepoint-2010 datepicker stylesheet

也许某个地方有人有同样的问题,可以帮助我。我在用户控件(标记)中使用 DateTimeControl,而后者又用于作为 SharePoint 解决方案一部分的页面。

在某些环境中,DateTimeControl 样式似乎已损坏。但是,使用默认站点和任务列表,相同控件的样式工作正常。

在受影响的环境中检查页面的 HTML 输出,似乎 CSS 样式表没有链接到页面。我检查了目录,文件确实存在。

[编辑 - 更多信息]

日期选择器弹出日历出现在 iframe 内,通常如下引用:

_layouts/iframe.aspx?&cal=1&lcid=1033&langid=1033&ww=0111110&fdow=0&fwoy=0&hj=0&swn=False&minjday=109207&maxjday=2666269&date=11%2F22%2F2010

实际文件的标记如下所示:
 
<%@ Assembly Name="Microsoft.SharePoint.ApplicationPages" %> <%@ Page Language="C#" Inherits="Microsoft.SharePoint.ApplicationPages.DatePickerFrame"       %> <%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <% SPSite spServer = SPControl.GetContextSite(Context); SPWeb spWeb = SPControl.GetContextWeb(Context); %>
<html dir="<SharePoint:EncodedLiteral runat='server' text='<%$Resources:wss,multipages_direction_dir_value%>' EncodeMethod='HtmlEncode'/>">
    <head>
    <meta name="GENERATOR" content="Microsoft SharePoint" />
    <SharePoint:CssLink runat="server"/>
    <script type="text/javascript" src="./DatePicker.js"></script>
    <title>Date Picker</title>
    </head>
    <body onload="PositionFrame('DatePickerDiv');" onkeydown="OnKeyDown(event);" style="margin:0;">
      <SharePoint:SPDatePickerControl id="DatePickerWebCustomControl" runat="server" >
          </SharePoint:SPDatePickerControl>
    </body>
</html>

正确的输出将包括与此类似的头部部分:

<head>
<meta name="GENERATOR" content="Microsoft SharePoint" />
<link rel="stylesheet" type="text/css" href="/_layouts/1033/styles/Themable/datepickerv4.css?rev=Hu9OlQmu1YOXv7TK%2BQrc5Q%3D%3D"/>
<link rel="stylesheet" type="text/css" href="/_layouts/1033/styles/Themable/corev4.css?rev=iIikGkMuXBs8CWzKDAyjsQ%3D%3D"/>

<script type="text/javascript" src="./DatePicker.js"></script>
<title>Date Picker</title>
</head>

注意到 datepickerv4.css 样式表的链接了吗?但是,在某些环境中,HTML 输出中的 head 部分看起来像这样:

<head>
<meta name="GENERATOR" content="Microsoft SharePoint" />
<link rel="stylesheet" type="text/css" href="/_layouts/1033/styles/Themable/corev4.css?rev=iIikGkMuXBs8CWzKDAyjsQ%3D%3D"/>

<script type="text/javascript" src="./DatePicker.js"></script>
<title>Date Picker</title>
</head>

注意到缺少的链接了吗?我曾尝试修复 SharePoint 的安装,但很遗憾。我使用了 DateTimeControl.ApplyStyleSheetSkin 方法但没有成功。

这一定是我需要做的事情,因为任务列表上的 DateTimeControl 在受影响的环境中表现正确。

有任何想法吗

最佳答案

问题出在管理路径上,下面是场景:

已创建托管路径 ('manage')。在托管路径上,创建了一个团队网站。在名为“blanksite”的“管理”上创建了一个空白站点,并在其中创建了另一个名为“门户”的站点。

用于 iframe 日历页面的路径应该是 http://host:port/manage/blanksite/portal/_layouts/iframe.aspx而是只读为 http://host:port/_layouts/iframe.aspx .

尽管可以访问,但上下文不正确,这意味着从未附加 DatePicker 的 CSS。

为了解决这个问题,我们将用户控件中 DateTimeControl 元素的 DatePickerFrameUrl 属性设置为“SPContext.Current.Web.ServerRelativeUrl + "/_layouts/iframe.aspx"”。

关于sharepoint-2010 - SharePoint 2010 - DateTimeControl 样式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4243408/

相关文章:

javascript - 使用 JQuery 获取 SELECT 的选定选项文本

jquery - 使用 jquery 如何删除 anchor 标记 <a> 但保留内容?

javascript - 将内联 jquery datepicker 与输入字段结合起来?

iphone - safari 中的 float 问题

具有吸引人的默认样式的 CSS 重置?

c# - 在 Sharepoint 2010 中使用 Entity Framework 作为 Web 部件的数据源

html - 当我在 Sharepoint Webpart 页面设计中编写相同的 Aspx 代码时,为什么会有轻微的变化?

php - 如何使用datepicker、ajax、php、mysql生成两个日期之间的报告?

jQuery UI DatePicker 更改突出显示的 "today"日期

php - wordpress 登录页面未获取 load-styles.php?