我正在将一个Web应用程序重写为ASP.Net 4.0并且包含一个Menu控件(自然地绑定到SiteMap文件)。虽然我喜欢新的RenderingMode属性,但我很讨厌它会自动在页面底部包含一些javascript来为菜单设置动画。
我的偏好是使用jQuery进行更好的控制,但是关闭它实际上非常困难。在一个非常重的击球手的帮助下,我已经走到了我发现ASP.Net 4.0 Menu控件有一个内部OnPreRender方法的地步:
internal void OnPreRender(EventArgs e, bool registerScript);
如何覆盖此方法以便我可以调用:
base.OnPreRender(e, false);
此刻尝试时,我收到Visual Studio的错误,说“方法'OnPreRender'没有重载需要2个参数”。
答案 0 :(得分:3)
您应该可以protected internal
或 protected
引用internal
方法。如果方法只是internal
,那么你可能会失去运气。
查看ASP.NET 4菜单控件,它只有一个OnPreRender
覆盖:
protected internal override void OnPreRender(EventArgs e);
所以你应该能够覆盖它。不确定OnPreRender(EventArgs e, bool registerScript)
来自哪里(也许是internal
),但是基类没有(或者它不可访问)的事实是你的问题。
答案 1 :(得分:0)
不是一个直接的答案,但将任何IHeirarchicalDataSource的内容(例如站点地图文件)转储到<ul>
是非常简单的,任何数量的jquery菜单产品都可以咀嚼和制作它们。