Ik stoei al een paar dagen met het volgende probleem.
Ik heb een skin gemaakt voor DotNetNuke, maar omdat er wat CSS aanpassingen nodig zijn voor IE, zocht ik een manier om gebaseerd op browser additionele stylesheets toe te voegen voor IE6 en IE7.
De relevante code
Nu krijg ik hier de volgende exception op:
Het gaat dus fout op regel 31, dit is waar de Controls.Add staat, maar hij klaagt dat er <% %> in de control zou staan, dit is niet zo, zoals je kan zien in de bovenstaande code, waarom krijg ik dan toch deze exception?
Ik heb een skin gemaakt voor DotNetNuke, maar omdat er wat CSS aanpassingen nodig zijn voor IE, zocht ik een manier om gebaseerd op browser additionele stylesheets toe te voegen voor IE6 en IE7.
De relevante code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| <script language="C#" runat="server"> protected void Page_Load(object sender, EventArgs e) { string cssFixFile = null; // Note, "Firefox", "Opera", "Netscape" can all be detected using this method. if (Request.Browser.Browser.Equals("IE")) { // IE detected // if (Request.Browser.MajorVersion == 7) { // IE7 detected - create a full path to the skin_IE7.css file cssFixFile = System.IO.Path.Combine(this.SkinPath, "skin_IE7.css"); } else if (Request.Browser.MajorVersion == 6) { // IE6 detected - create a full path to the skin_IE6.css file } cssFixFile = System.IO.Path.Combine(this.SkinPath, "skin_IE6.css"); // etc... more browser detection possible } // Load in the CSS file for the browser if (cssFixFile != null) { // If a CSS file is needed, this part loads it in HtmlGenericControl link = new HtmlGenericControl("LINK"); link.Attributes.Add("rel","stylesheet"); link.Attributes.Add("type","text/css"); link.Attributes.Add("href", cssFixFile ); Controls.Add(link); } } </script> <%@ Control language="C#" CodeBehind="index.ascx.cs" AutoEventWireup="true" Explicit="True" Inherits="DotNetNuke.UI.Skins.Skin" %> <%@ Register TagPrefix="dnn" TagName="HOUSEMENU" Src="~/DesktopModules/HouseMenuSkinObject/HouseMenuSkinObject.ascx" %> <%@ Register TagPrefix="dnn" TagName="HOUSEMENU4" Src="~/DesktopModules/HouseMenuSkinObject/HouseMenuSkinObject.ascx" %> <%@ Register TagPrefix="dnn" TagName="HOUSEMENU2" Src="~/DesktopModules/HouseMenuSkinObject/HouseMenuSkinObject.ascx" %> <%@ Register TagPrefix="dnn" TagName="HOUSEMENU3" Src="~/DesktopModules/HouseMenuSkinObject/HouseMenuSkinObject.ascx" %> <%@ Register TagPrefix="dnn" TagName="COPYRIGHT" Src="~/Admin/Skins/Copyright.ascx" %> <%@ Register TagPrefix="dnn" TagName="TERMS" Src="~/Admin/Skins/Terms.ascx" %> <%@ Register TagPrefix="dnn" TagName="PRINTMODULE" Src="~/Admin/Containers/PrintModule.ascx" %> <%@ Register TagPrefix="dnn" TagName="SEARCH" Src="~/Admin/Skins/Search.ascx" %> <%@ Register TagPrefix="dnn" TagName="USER" Src="~/Admin/Skins/User.ascx" %> <%@ Register TagPrefix="dnn" TagName="LOGIN" Src="~/Admin/Skins/Login.ascx" %> |
Nu krijg ik hier de volgende exception op:
code:
1
2
3
| DotNetNuke.Services.Exceptions.PageLoadException: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>). ---> System.Web.HttpException: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>). at System.Web.UI.ControlCollection.Add(Control child) at ASP.portals__default_skins_csv_index_ascx.Page_Load(Object sender, EventArgs e) in c:\DotNetNukeTest\Portals\_default\Skins\csv\index.ascx:line 31 at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace --- |
Het gaat dus fout op regel 31, dit is waar de Controls.Add staat, maar hij klaagt dat er <% %> in de control zou staan, dit is niet zo, zoals je kan zien in de bovenstaande code, waarom krijg ik dan toch deze exception?
... MMORPG Addict.