У меня есть пользовательский элемент управления ASCX, который используется примерно на 60 страницах веб-форм. Этот элемент управления в основном предоставляет серию вложенных выпадающих списков.Переопределить метод управления ASCX на родительской странице
Внутри управления, метод для заполнения окончательного списка, как это:
Public Sub PopulateList()
Dim dt as DataTable = MyDAL.GetListValues()
For each dr as DataRow in dt.Rows
Dim li as new ListItem
' ...
myDDL.Items.Add(li)
Next
End Sub
В небольшой кучке страниц, мне нужен этот метод немного работает по-разному (элементы списка заполняется более подробной информацией , из другой таблицы).
Возможно ли как-то для родительской страницы элемента управления каким-либо образом переопределить метод? Я читал о переименовании на разных страницах MSDN, но не могу понять это. Я могу объявить метод как ...
Public Overridable Sub PopulateList()
... но потом в VS2015, когда я пытаюсь создать преимущественный метод с использованием Public Overrides
меню Intellisense не содержат никаких ссылок на пользовательском элемент управления, или метод , Я предполагаю, что это происходит потому, что на самом деле элемент управления не наследуется страницей?
Это возможно, или есть другой способ пожалуйста?
Это интересно спасибо. Я не знал, что это можно сделать. Единственная проблема заключается в том, что 'PopulateList' вызывается внутри элемента управления, поэтому мне нужно будет разрешить заполнение списка, а затем вручную вызвать его снова из страницы (I * think *), чтобы заменить ListItems новыми. – EvilDr
В этом случае создайте свойство и установите это свойство на своей странице где-нибудь на жизненном цикле (возможно, инициализируйте), прежде чем ваш контроль вызовет PopulationList. Тогда ваш метод PopulateList будет использовать свойство вместо параметра. Но вы должны убедиться, что он установлен до вызова PopulateList. – Eric
Или, как я упоминал в своем сообщении, вы можете использовать Событие. Поднимите событие, чтобы получить нужный источник данных и все, что требуется для создания вашего настраиваемого списка. Я вскоре обновлю свой пример – Eric