Sharepoint 2010 SharePoint 2010-日期时间控件样式设置问题

Sharepoint 2010 SharePoint 2010-日期时间控件样式设置问题,sharepoint-2010,datepicker,stylesheet,Sharepoint 2010,Datepicker,Stylesheet,也许某个地方的人也有同样的问题,可以帮我解决。我在用户控件(标记)中使用DateTimeControl,而用户控件(标记)又在作为SharePoint解决方案一部分的页面上使用 在某些环境中,DateTimeControl样式似乎已损坏。但是,使用默认站点和任务列表,同一控件的样式可以正常工作 在受影响的环境中检查页面的HTML输出,CSS样式表似乎没有链接到页面。我检查了目录,文件确实存在 [编辑-更多信息] 日期选择器弹出日历显示在iframe中,通常如下所示: _layouts/ifram

也许某个地方的人也有同样的问题,可以帮我解决。我在用户控件(标记)中使用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/corev4.css?rev=iIikGkMuXBs8CWzKDAyjsQ%3D%3D"/>

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

日期拾取器
正确的输出将包括与以下类似的头部部分:


<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部分看起来是这样的:

 
<%@ 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/corev4.css?rev=iIikGkMuXBs8CWzKDAyjsQ%3D%3D"/>

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

日期拾取器
注意到丢失的链接了吗?我已经尝试过修复SharePoint的安装,但遗憾的是。我使用了DateTimeControl.ApplyStyleSheetSkin方法,但没有成功

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


有什么想法吗?你是如何引用CSS样式表的?它是通过母版页还是用户控件中的直接引用?如果是后者,可能是它没有指向正确的位置。您是否尝试过Firefox和Firebug的Web Developer插件,以验证样式表是否正确选取?

问题在于托管路径,以下是场景:

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

iframe日历页所使用的路径应为,但仅读取为

虽然可以访问,但是上下文是不正确的,这意味着DatePicker的CSS从未附加


为了解决此问题,我们已将用户控件内DateTimeControl元素的DatePickerFrameUrl属性设置为“SPContext.Current.Web.ServerRelativeUrl+”/\u layouts/iframe.aspx”“。

将用户控件中的
DateTimeControl
元素的
DatePickerFrameUrl
属性设置为
SPContext.Current.Web.ServerRelativeUrl+“/\u layouts/iframe.aspx”
修复了我的问题。

我使用的是常规的v4母版页,没有引用任何样式表。似乎在某些环境中,日期选择器的样式表没有附加到HTML输出。请不要将后续问题集作为完整答案发布。当你获得足够的声誉时,你可以在问题本身下以评论的形式发布后续问题。你的用户控件的结果HTML部分对于正常工作的页面和不正常的页面是否相同?如果是这样的话,那么问题就在于确保CSS也同时从两者引用。