2010-07-15 194 views
0

我正在爲ASP.Net 4.0重寫一個Web應用程序,並且包含一個Menu控件(自然綁定到SiteMap文件)。雖然我喜歡新的RenderingMode屬性,但我討厭它會自動在頁面底部包含一些javascript來動畫菜單。覆蓋受保護的內部方法

我的偏好是使用jQuery進行更好的控制,但切換關閉非常困難。從一個非常沉重的擊球手一些幫助,我已經通過走到哪裏,我發現ASP.Net 4.0菜單控制有一個內部的OnPreRender方法點:

internal void OnPreRender(EventArgs e, bool registerScript); 

如何重寫此方法所以,我可以打電話:

base.OnPreRender(e, false); 

當在時刻努力着,我從Visual Studio說,「不超載的方法‘的OnPreRender’需要兩個參數」得到一個錯誤。

+0

您可以通過騎它在客戶端 http://stackoverflow.com/questions/3425498/disable-javascript-generation-by-asp-net-menu-control/16587087 – Shameed 2013-05-16 12:15:40

+0

的http://計算器.com/questions/3425498/disable-javascript-generation-by-asp-net-menu-control/16587087 – Shameed 2013-05-16 12:16:47

回答

3

你應該能夠引用protected internal方法,因爲它們是protectedinternal。如果該方法只是internal,那麼您可能不太順利。

看着ASP.NET 4菜單控制,它只有一個OnPreRender覆蓋:

protected internal override void OnPreRender(EventArgs e); 

所以,你應該能夠覆蓋它。不知道OnPreRender(EventArgs e, bool registerScript)來自哪裏(可能是internal),但基類不是它(或它是無法訪問的)的事實是你的問題。

+0

這只是內部的。猜猜這是路的盡頭。 – 2010-07-15 02:53:42

+0

我想替代方法是不要調用基礎'PreRender',而是在覆蓋中編寫自己的版本。也許像Reflector這樣的東西可能會幫助你弄清楚「OnPreRender(EventArgs e,bool registerScript)」究竟做了什麼。 – 2010-07-15 03:02:14

0

不是一個直接的答案,但它很容易將任何IHeirarchicalDataSource的內容(比如站點地圖文件)轉儲到<ul>,任何數量的jquery菜單產品都可以咀嚼並製作好菜單。

相關問題