У меня есть контроль, унаследованный от UserControl
. Этот элемент управления имеет LinkButton
на нем с LbButtonClick(object sender, EventArgs e)
. У меня есть только файл ascx для этого элемента управления и предварительно скомпилированная сборка.Как переопределить метод UserControl в ascx-файле без источника?
Мне нужно заменить метод LbButtonClick
с помощью моего собственного метода. Как это сделать? Могу ли я сделать это в файле ascx или мне нужно изменить элемент управления, когда он впервые загружен на веб-странице.
Я хотел бы использовать первое решение, если это возможно (файл ascx) - чтобы моя модификация была как можно ближе к самому элементу управления.
Edited
Я хотел бы поблагодарить @pid и @Francesco Милани за их помощь. Я рассматривал их решения, но перед их внедрением я просто попробовал еще одну вещь. Просто я добавил этот код в файл ascx упомянутого элемента управления.
<script runat="server" type="text/C#">
protected void LbButtonClick(object sender, EventArgs e)
{
//Some code here...
}
</script>
И это сработало. Кажется, что метод переопределения в ascx-файле разрешен, и этот переопределенный метод вызывается вместо того, который был предварительно скомпилирован в сборке. Я не получил информации от компилятора, никаких предупреждений и намеков. Как ни странно, я не понимаю. Поскольку это проще и чище, чем предлагаемые решения, я бы принял это как ответ, но я не люблю принимать свои собственные ответы.
Возможно, кто-то может объяснить мне, почему работа над конструкцией работала?
Здравствуйте, как вы просили, я сообщаю в своем отредактированном ответе, как я решил проблему. :) Извините за поздний ответ, у меня не было времени написать это раньше. – Wodzu
Ваш собственный ответ на самом деле очень интересный. +1 для обмена! – pid