2010-06-25 89 views

回答

1

上面的答案是正確的實際。在我看來,即使模板XML包含皮膚參考時使用模板

<skinsrc>[G]Skins/Corporate/agr-feed-detail.ascx</skinsrc> 

我希望有人對這個問題的解決方案,或者能夠創建一個新的頁面不會對皮膚可見確認這個問題

1

我可以證實它 - 我還沒有想出如何讓模板實際使用引用的皮膚,雖然。用模板構建一個頁面並不得不進入並完成它。

如果您自己構建XML或通過導出創建模板,這也不例外。

1

如果你有看DotNetNuke.Web.UI的反編譯源代碼,並查找RibbonBarManager.SaveTabInfoObject方法,你就會明白爲什麼...

從本質上講,當你選擇一個模板作爲一個基地頁面中,新頁面將繼承的唯一信息是窗格數據(即在模板中配置的模塊)。

正如在這裏看到...

xmlDocument.Load(templateMapPath); 
TabController.DeserializePanes(xmlDocument.SelectSingleNode("//portal/tabs/tab/panes"), tab.PortalID, tab.TabID, PortalTemplateModuleAction.Ignore, new Hashtable()); 

是的,不拘小節,惱人的,不完整的......很dotnetnukey和TBH我從他們的代碼期望真的。不是粉絲。

+0

快速黑客繞過這將是如下: 在AddPage.ascx.vb在cmdAddPage_Click事件,改變... templateFile = System.IO.Path.Combine(PortalSettings.HomeDirectoryMapPath,「模板\」 + TemplateLst.SelectedValue) 爲... templateFile = System.IO.Path.Combine(PortalSettings.HomeDirectoryMapPath, 「模板\」 + TemplateLst.SelectedValue) XDOC昏暗作爲的XDocument = XDocument.Load(templateFile ) If Not(xdoc Is Nothing)Then newTab.SkinSrc =(來自doc在xdoc.Descendants(「tab」)_ 選擇doc.Element(「skinsrc」)。Value).FirstOrDefault() End If – Dan 2011-08-29 04:15:33