Criando controles dinamicamente em Asp.Net

 

Este é meu primeiro artigo nesse Portal. Resolvi escrevê-lo devido a dificuldade que tive em encontrar material sobre esse assunto quando precisei criar formulários diferentes dentro de um cenário.

 

Este pequeno artigo apresenta uma solução para criar controles e tags html dentro de um outro controle.

 

Criando a página a ser usada

O código abaixo é referente a página Default.aspx, foi criado apenas um Panel identificado como Panel1.

 

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Criando Controles Dinamicamente</title>

</head>

<body>

    <form id="form1" runat="server">

        <asp:Panel ID="Panel1" runat="server">

        </asp:Panel>

    </form>

</body>

</html>

 

Criando o Code-Behind a ser usado

O código abaixo é referente ao arquivo Default.aspx.vb. Foi criado uma função chamada de GetLiteral, essa função transforma o texto no tipo Literal, que é responsável por renderizar textos estáticos. Aproveitamos o evento Page_Load como um exemplo para criar o controle DropDownList dentro do controle Panel1. Veja como ficou o código.

 

Partial Class _Default

    Inherits System.Web.UI.Page

    Function GetLiteral(ByVal text As String)

        Dim rv As New Literal

        rv.Text = text

        GetLiteral = rv

    End Function

 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim ddl As New DropDownList 'cria um novo controle dropdownlist

        ddl.ID = "ddl" 'identifico o dropdownlist

        ddl.Items.Add(New ListItem("Goiaba")) 'adicionar alguns itens ao dropdownlist

        ddl.Items.Add(New ListItem("Banana"))

        ddl.Items.Add(New ListItem("Laranja"))

        Panel1.Controls.Add(ddl) 'adicionar controle ao panel

 

        Panel1.Controls.Add(GetLiteral("<br>DropDownList criado dinamicamente!!<br>")) 'usamos a função GetLiteral para adicionar tags/textos em html ao panel

    End Sub

End Class

 

Partial Class _Default

    Inherits System.Web.UI.Page

    Function GetLiteral(ByVal text As String)

        Dim rv As New Literal

        rv.Text = text

        GetLiteral = rv

    End Function

 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim ddl As New DropDownList 'cria um novo controle dropdownlist

        ddl.ID = "ddl" 'identifico o dropdownlist

        ddl.Items.Add(New ListItem("Goiaba")) 'adicionar alguns itens ao dropdownlist

        ddl.Items.Add(New ListItem("Banana"))

        ddl.Items.Add(New ListItem("Laranja"))

        Panel1.Controls.Add(ddl) 'adicionar controle ao panel

 

        Panel1.Controls.Add(GetLiteral("<br>DropDownList criado dinamicamente!!<br>")) 'uso a função GetLiteral para adicionar tags/textos em html ao panel

    End Sub

End Class

 

A Figura 01 é referente ao resultado da aplicação em execução.

 

pcccdiadnfig01.jpg 

Figura 01

 

Espero ter ajudado com a publicação desse artigo, até a próxima!

 

[]’s

Paulo Holanda