2010-08-23 85 views
2

VS2010附带的演示Web项目包含一个system.web.ui.webcontrols.menu控件。当我将IncludeStyleBlock属性设置为True时,为什么CSS会“丢失”?

该特定菜单包含IncludeStyleBlock属性。

当IncludeStyleBlock属性设置为False时,菜单会按照它的设置显示。如果我将该属性设置为True,菜单将被销毁。所以这里是我的主要问题...

是否有任何方法保持菜单的出现,IncludeStyleBlock属性设置为false?

P.S.我必须将它设置为False ...因为我的提供程序不支持第四代.NET框架。

+0

您是否仔细检查了生成的html以查看该代码中实际上没有该菜单? – 2010-08-31 22:37:38

回答

0

你在你的问题中错过了。首先,当IncludeStyleBlock属性设置为False时,菜单是完美的,并且在True时断开。然后你说它在False时被破坏,并且你想要一个在False下工作的解决方法。

正因为如此混乱的我立足这个答案关闭您希望在IncludeStyleBlock设置为true模仿的默认样式由ASP.NET设定的假设,但同时保持IncludeStyleBlock="False"

第一:由于菜单当IncludeStyleBlock="True"完美显示时,您需要将其设置为true并预览呈现的源代码。从源代码中可以找到Menu控件默认生成的默认CSS块的副本。这是你需要的。

第二个:一旦你有CSS块,只需复制并粘贴到你的标记(内联或外部)。一旦你这样做了,你可以制作IncludeStyleBlock="False",现在的内联/外部CSS块将保留菜单的外观。 (作为奖励,这是缓存CSS的一小部分性能提升)

1

如果生成元素有id和类,你可以用一个普通的CSS文件来设置它们。该选项是否打开生成内联CSS?如果是这样你可以复制到一个外部文件开始

1

请问this page给你一些线索,具体在备注节?

简而言之,如果将该属性设置为false,则必须在页面中提供“自己的CSS定义块,或者包含指向包含定义的外部CSS文件的链接。”另外,您将无法设置样式属性。

因此,相反,如果将该属性设置为true,则会忽略您提供的样式属性。

相关问题