- Correção de falhas
- Adicionado suporte a vários tipos de itens, cada um com um template próprio.
Sei que não tem muitas informações sobre a utilização do componente, mas quem quiser saber mais basta perguntar.
- O código do componente está mais organizado.
- Adicionado o LayoutTemplate.
Constantemente tenho necessidade de criar uma interfance com uma lista de cadastro dinâmica, conforme a imagem abaixo. Onde o número de alternativas pode variar de 1 até N.
Resolvi então criar um Custom Control, que chamei de DList (Dynamic List), uma espécie de DataList sem DataSource.
Então vamos colocar a mão na massa e criar interfaces utilizando o componente.
- Abra o Visual Studio 2008, e crie um novo Website, utilizando a linguagem C#.
- Faça download de um projeto de exemplo com as classes do componente DList aqui.
- Copie a pasta DList de dentro da pasta App_Code do projeto de exemplo para a pasta App_Code do seu projeto.
- Adicionamos então uma referência para uma dll utilizada pelas classes, clique com o botão direito sobre a solução, em seguida clique em "Add reference", localize o item "System.Design" e clique em "Ok".
Para utilizá-lo em alguma página, registre o namespace adicionado a seguinte linha no início do arquivo .aspx
<@ Register Namespace="CustomControls" TagPrefix="cc" %>Adicione o controle na página com a seguinte linha:
<cc:DList runat="server" ID="DList1" />O componente suporta 3 templates:
- LayoutTemplate, utilizado para layout do componente, coloque um PlaceHolder para determinar o local onde os itens serão adicionados;
- ItemTemplate, utilizado para a criação de cada item;
- SeparatorTemplate, adicionado entre os itens.
- ItemIndexChange, disparado sempre que há alteração na posição de um elemento, facilitando a atualização de numeradores.
- ItemCreate, disparado sempre que um item é criado, permitindo adição de componentes dinamicamente.
- ItemCommand, disparado sempre que um comando "borbulha" de algum componente interno.
Atualmente o controle atende às minhas necessidades, caso eu adicione novas funcionalidades ou faça modificações, postarei o código atualizado.
Estou a disposição para dúvidas, sugestões, pedidos, ou discutir abordagens para essa situação.
0 comentários:
Postar um comentário