Аз разработвам композитен контрол за ASP.NET и просто случайно първоначално разработиха контрола, за да използват ITemplate, за да създадат детските си контроли. Ще има серия от бутони в контролите за деца, които трябва да се обработят в основния контрол. Използвам свойствата OnBubbleEvent с CommandName / CommandArgument на бутоните, за да ги свържа нагоре. И всичко беше страхотно ... докато не промених шаблоните за контрол.
Когато преобразувах шаблона в контрола и се нарече Controls.Add (нов ChildControl ()) в моя корен контрол, вместо в InstantiateIn (това), балонът на събитията вече не работи.
Някаква идея защо?
(Всичко, и искам да кажа всичко, иначе е същото.)
Отговори:
0 за отговор № 1Вашият съставен контрол трябва да се изпълниИнтерфейс InamingContainer, за да получавате обаждания на OnBubbleEvent. Класът CompositeControl вече изпълнява този интерфейс ... в твоя случай той спря да работи не заради ITemplate, а защото промени наследството от CompositeControl да се контрол.
Виж това: http://msdn.microsoft.com/en-us/library/system.web.ui.control.onbubbleevent.aspx
те го казват там.