Переопределение защищенных внутренних методов - PullRequest
0 голосов
/ 15 июля 2010

Я переписываю веб-приложение в ASP.Net 4.0 и включил элемент управления Menu (естественно, связанный с файлом SiteMap).Хотя мне нравится новое свойство RenderingMode, я ненавижу тот факт, что оно автоматически включает в себя некоторый JavaScript в нижней части вашей страницы для анимации меню.

Я бы предпочел больший контроль с использованием jQuery, новыключить это очень сложно.С некоторой помощью очень сильного нападающего я дошел до того, что обнаружил, что элемент управления ASP.Net 4.0 имеет внутренний метод OnPreRender:

internal void OnPreRender(EventArgs e, bool registerScript);

Как переопределитьэтот метод, чтобы я мог вызвать:

base.OnPreRender(e, false);

При попытке в данный момент я получаю сообщение об ошибке от Visual Studio, в котором говорится, что «Нет перегрузки для метода« OnPreRender »принимает 2 аргумента».

Ответы [ 2 ]

3 голосов
/ 15 июля 2010

Вы должны иметь возможность ссылаться на protected internal методы, так как они protected или internal.Если метод просто internal, вам может не повезти.

Если посмотреть на элемент управления ASP.NET 4, он имеет только одно переопределение OnPreRender:

protected internal override void OnPreRender(EventArgs e);

должен быть в состоянии переопределить это.Не уверен, откуда взялся OnPreRender(EventArgs e, bool registerScript) (возможно, это internal), но тот факт, что базовый класс этого не делает (или он недоступен), является вашей проблемой.

0 голосов
/ 15 июля 2010

Не прямой ответ, но довольно просто выгрузить содержимое любого IHeirarchicalDataSource, такого как файл карты сайта, в <ul>, который любое количество продуктов меню jquery может жевать и делать чистку.

...