2012-02-27 4 views
3

У меня есть несколько страниц, на которых есть элемент управления GridView. Внутри этого контроля есть несколько событий, которые необходимо выполнить (OnRowDataBound, и т. Д.)Наследование из asp: GridView

Любые предложения относительно наследования со страницы, которая заставит меня (виртуальные функции) реализовать каждое из этих событий? Я не могу представить, как это будет выглядеть из-за того, что GridView является элементом управления. Как наследовать от элемента управления?

ответ

2

Обычный способ сделать это, чтобы содержать ваш GridView в UserControl

Если вы поместите сетку на пользовательский элемент управления, а также подписаться на все события там, то вы можете повторно использовать эту реализацию в любом месте вы хотите в приложение - вы, по сути, просто обертываете пользовательский элемент управления нужной вам функциональностью, а затем снова используете эту оболочку.

Приятная вещь состоит в том, что вам нужно только написать код подключения один раз.

Это то, что я думаю, вы хотите сделать.

Если вы хотите продлить или обработать эти события вне пользовательского контроля, вам придется их повторно реализовать (т. Е. Добавить свои собственные обработчики событий и позволить этим пузырям).

Вы не можете заставить кого-либо подписаться на ваши мероприятия.

Если вы хотите принудительно выполнить реализацию событий, то вы можете поместить события на интерфейс и реализовать этот интерфейс для класса или элемента управления, в который вы его добавили. Поскольку события находятся на интерфейсе, вы не сможете скомпилировать, пока интерфейс не будет имплантирован.

Если у вас есть конкретный вариант использования, я могу попытаться добавить пример.

+0

Затем как заставить каждую страницу, использующую этот элемент управления, реализовать все события? Я бы поставил аналогичные функции, не относящиеся к этому элементу управления, в этом новом пользовательском элементе управления? – duckmike

+0

Страница не нуждается в реализации этих событий; ему просто нужно подписаться на них. Вы не можете заставить кого-то подписаться на мероприятие. Если вы хотите, чтобы эти события были всегда реализованы, вы делаете это в своем usercontrol, но это действительно зависит от того, что вы хотите сделать. – dash

+0

вы можете указать ссылку, которая реализовала обертку gridview в usercontrol? Спасибо – Pankaj

Смежные вопросы