也許某個地方有人有同樣的問題,可以幫助我。我在用戶控件(標記)中使用DateTimeControl,該標記反過來在SharePoint解決方案的一部分的頁面上使用。SharePoint 2010 - DateTimeControl造型問題
在某些環境中,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在受影響的環境中表現正確。
任何想法
您的用戶控件生成的HTML部分對於正在工作的頁面和不是的頁面是否相同?如果是這樣,那麼問題就是確保CSS同時也被引用。 – 2010-11-22 18:16:53