Каков наилучший способ расширения функциональности стандартного элемента управления веб-сервера в ASP.NET? - PullRequest
2 голосов
/ 21 ноября 2010

В настоящее время мой код похож на это:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CustomPanel.ascx.cs"
CodeFile="CustomPanel.ascx.cs" CodeFileBaseClass="System.Web.UI.WebControls.Panel"
Inherits="MyProject.CustomPanel" %>

...

namespace MyProject
{   public partial class CustomPanel : System.Web.UI.WebControls.Panel
    { ... }
}

Тем не менее, я действительно не уверен, что делать дальше, потому что это не похоже на логический путь наследования, который включает System.Web.UI.UserControl

Я что-то не так делаю? Как я могу наследовать Panel и расширять стандартные обработчики событий, такие как PreInit?

Ответы [ 2 ]

1 голос
/ 21 ноября 2010

Вы хотите расширить или инкапсулировать a Panel здесь?

Расширение будет выполняться не с помощью пользовательского элемента управления, а с помощью обычного файла класса, класс которого наследуется от Panel.

Инкапсуляция это будет сделано в пользовательском элементе управления, как, кажется, то, что вы сделали здесь; В таком случае вы помещаете экземпляр Panel в файл ascx пользовательского элемента управления ... вы не пытаетесь наследовать его.

На самом деле похоже, что вы пытаетесь сделать оба одновременно; ты не должен этого делать. Прямой путь наследования, как вы, похоже, ищете, не содержит ни Usercontrol, ни Panel; вам придется выбрать один из указанных выше вариантов или другой.

0 голосов
/ 21 ноября 2010

Чтобы расширить его, вы должны создать новый класс, который наследует класс System.Web.UI.WebControls.Panel.Создав свой пользовательский класс, вы можете переопределить существующие методы из класса Panel, которые помечены как виртуальные.(При вводе переопределения ключевого слова в Visual Studio внутри вашего класса появится список виртуальных методов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...