Может быть, кто-то где-то имел такую же проблему и может мне помочь. Я использую 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>
<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 в списках задач правильно работает в уязвимой среде.
Любые идеи