/ / ASP.NET комбинираният контрол не създава балон, но шаблонът го прави - asp.net, събитие-bubbling, composite-controls, itemplate

ASP.NET комбинираният контрол не създава балон, но шаблонът го прави - asp.net, събитие-bubbling, composite-controls, itemplate

Аз разработвам композитен контрол за 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

те го казват там.