Partilhar via


Estendendo a funcionalidade com herança

Além disso, para criar controles de usuário, você pode usar a herança para estender a funcionalidade de suas páginas da Web móveis do ASP.NET.Se você criar uma classe que herda de uma classe de controles ASP.NET para dispositivo móvel existente, você pode adicionar funcionalidade, substituindo membros existentes ou criando novas propriedades, métodos e eventos da classe.

Criando uma classe com herança

O exemplo de código a seguir mostra uma nova classe chamada CarList que herda a partir do List controle móvel e que é especializado para processar informações de automóveis. The CarList classe encapsula as informações necessárias para BIND a uma lista de Car objetos.

using System.Web.UI.MobileControls;

namespace myCompany.MobileControls
{
    class CarList : List
    {
        // Override OnInit, and set the DataValueField property
        // to the correct property of a Car object to use as the 
        // value of each list item.
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            this.DataValueField = "id";
        }
    
        // Override OnItemDataBind, and set the list item display 
        // text to a rich expression, containing the year, make, 
        // and model of the car.
        protected override void OnItemDataBind(ListDataBindEventArgs e)
        {
            base.OnItemDataBind(e);

            CarInfo car = (Car)e.DataItem;
            e.ListItem.Text = 
              String.Format("{0}{1}{2}", car.Year, car.Make, car.Model);
        }
    }
}

Para obter um exemplo mais detalhado de estender a funcionalidade do seu controle por meio de herança, consulte os tutoriais de início rápido do ASP.NET Mobile.

Implantando uma nova classe

Para usar essa classe de exemplo, compilar a classe em um assembly e colocá-la na pasta bin do aplicativo.O exemplo a seguir mostra como registrar um assembly chamado MyCompany.CarList.dll.Registrar o assembly em uma página usando o @ Register diretiva, especificando uma marca personalizada.

<%-- Register the myCompany.MobileControls namespace. --%>
<%@ Register TagPrefix="car" Namespace="myCompany.MobileControls" 
    Assembly="myCompany.CarList" %>
    // More code.
    <%-- Control declaration --%>
    <car:CarList id="myCarList"  />

Se seu controle herdado não modifica a funcionalidade de renderização da classe pai, você não precisará gravar um adaptador para a classe.No exemplo anterior, porque cada CarList controle também é um List objeto, o adaptador atribuídos à List controlar para o navegador corrente, sistema autônomo o HtmlListAdapter, será usado automaticamente. No entanto, se você desejar fornecer especializada de renderização do CarList controle de um dispositivo específico, você pode escrever um adaptador e registrar o mapeamento no arquivo Web.config.

Consulte também

Outros recursos

Adicionando adaptadores de dispositivo novo e suporte de dispositivo

Criando controles móveis personalizados