Você está offline; aguardando reconexão

COMO: Dinamicamente criar controles no ASP.NET usando o Visual translation from VPE for Csharp .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 317794
Sumário
Use este guia passo a passo para criar controles para uma página .aspx dinamicamente.

Este artigo demonstra como criar um controle para uma página .aspx dinamicamente. O projeto de exemplo faz o seguinte:
  • Cria dois controles TextBox .
  • Verifica que o conteúdo (TextBox.text) e os atributos de TextBox são salvos em postagens para o servidor.
  • Ilustra o tratamento de eventos que são lançados por um controle criados dinamicamente.

Criar o projeto e o controle estático

  1. Inicie o Microsoft Visual Studio NET..
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Clique em projetos do Visual translation from VPE for Csharp em Tipo de projeto e, em seguida, clique em ASP.NET Web Application em modelos . Nomeie o projeto DynamicCreate .
  4. Abra o arquivo WebForm1.aspx e alterne para o modo de exibição HTML. Substitua o código existente entre as marcas <html> e </html> com o seguinte código:
    <HEAD>    <title>WebForm1</title>    <meta content="Microsoft Visual Studio 7.0" name="GENERATOR">    <meta content="C#" name="CODE_LANGUAGE">    <meta content="JavaScript" name="vs_defaultClientScript">    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"></HEAD><body MS_POSITIONING="GridLayout">    <form id="Form1" method="post" runat="server">        <asp:Button id="Button1" style="Z-INDEX: 100; LEFT: 23px; POSITION: absolute; TOP: 108px" runat="server" Text="Submit" Height="27px" Width="100px"></asp:Button>        <asp:Label id="Label4" style="Z-INDEX: 105; LEFT: 23px; POSITION: absolute; TOP: 197px" runat="server" Width="368px" EnableViewState="False"></asp:Label>        <asp:Label id="Label3" style="Z-INDEX: 104; LEFT: 23px; POSITION: absolute; TOP: 163px" runat="server" Width="368px" EnableViewState="False"></asp:Label>        <asp:Label id="Label2" style="Z-INDEX: 102; LEFT: 23px; POSITION: absolute; TOP: 60px" runat="server" Width="86px" Height="19px"> TextBox2:</asp:Label>        <asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 23px; POSITION: absolute; TOP: 28px" runat="server" Width="86" Height="19"> TextBox1:</asp:Label></form></body>
  5. Retorne o modo de design para ver os controles criados estaticamente que o projeto irá usar.

Criar o controle dinâmico e vinculá-lo para cima

  1. No Solution Explorer, clique em Mostrar todos os arquivos para exibir uma lista dos arquivos que estão associados a WebForm1.aspx. Abra o arquivo WebForm1.aspx.cs.
  2. Declare os controles TextBox no arquivo .cs (code-behind). Além disso, declare uma variável do elemento de formulário existente no arquivo.aspx. Atualizar as declarações após a declaração para a classe WebForm1 :
    public class WebForm1 : System.Web.UI.Page{	protected System.Web.UI.WebControls.Label Label1;	protected System.Web.UI.WebControls.Label Label2;	protected System.Web.UI.WebControls.Label Label3;	protected System.Web.UI.WebControls.Label Label4;	protected System.Web.UI.WebControls.Button Button1;	// Added by hand for access to the form.	protected System.Web.UI.HtmlControls.HtmlForm Form1;		// Added by hand; will create instance in OnInit.	protected System.Web.UI.WebControls.TextBox TextBox1;	protected System.Web.UI.WebControls.TextBox TextBox2;
    declarações A TextBox são inseridas manualmente como seriam se um TextBox foram arrastados para a página .aspx da caixa de ferramentas. No entanto, nesse caso, você criar controles dinamicamente.
  3. Adicione código para criar os controles TextBox dinamicamente. Os controles são criados toda vez que a página é executada. O melhor lugar para isso é na função OnInit que fornece a classe WebForm1 .

    Localize a função OnInit . Expanda o código que é marcado com o "Web Form Designer gerado código" comentário. Modificar a função OnInit para que fique semelhante ao seguinte código:
    override protected void OnInit(EventArgs e){    // Create dynamic controls here.    // Use "using System.Web.UI.WebControls;"    TextBox1 = new TextBox();    TextBox1.ID = "TextBox1";    TextBox1.Style["Position"] = "Absolute";    TextBox1.Style["Top"] = "25px";    TextBox1.Style["Left"] = "100px";    Form1.Controls.Add(TextBox1);    TextBox2 = new TextBox();    TextBox2.ID = "TextBox2";    TextBox2.Style["Position"] = "Absolute";    TextBox2.Style["Top"] = "60px";    TextBox2.Style["Left"] = "100px";    Form1.Controls.Add(TextBox2);    this.TextBox1.TextChanged += new System.EventHandler(this.TextBox_TextChanged);    this.TextBox2.TextChanged += new System.EventHandler(this.TextBox_TextChanged);    //     // CODEGEN: This call is required by the ASP.NET Web Form Designer.    //     InitializeComponent();    base.OnInit(e);}
    este código dinamicamente cria dois controles TextBox , define suas identificações e posições e, em seguida, vincula-los a coleção de Controles de formulário . O código também fios até os eventos TextChanged das caixas de texto a um manipulador ( TextBox_TextChanged ).

    Diferente de definir a posição de TextBox programaticamente e ligando-à coleção de Controles de formulário , você pode adicionar controles de Web Forms painel para .aspx a página e vincular as caixas de texto a os função OnInit , semelhante a este:
    TextBox1 = new TextBox();    TextBox1.ID = "TextBox1";//Form1.Controls.Add(TextBox1);    Panel1.Controls.Add(TextBox1);
    Observação quando você cria controles dinâmicos em um formulário da Web, os controles devem ser criados e adicionados à coleção controles em OnInit ou em eventos Page_Load . Caso contrário, os controles se comportam inesperadamente.
  4. Inicialize a propriedade Text e estilos para as caixas de texto. Modifique a função Page_Load existente da seguinte forma:
    private void Page_Load(object sender, System.EventArgs e){    if(!IsPostBack)    {        // Set the initial properties for the text boxes.        TextBox1.Text = "TextBox1";        TextBox2.Text = "TextBox2";    }}
    o valor inicial de caixas de texto ( if(!IsPostBack) ) é definido uma vez. Essas informações são mantidas pela interface IPostBackDataHandler para as caixas de texto, tornando unecessary para redefinir o valor para postagens subseqüentes.
  5. Fornece um manipulador para os eventos TextChanged do controle TextBox . Adicione o seguinte código após o corpo da função Page_Load :
    private void TextBox_TextChanged(object sender, System.EventArgs e){    TextBox txtBoxSender = (TextBox)sender;    string strTextBoxID = txtBoxSender.ID;    switch(strTextBoxID)    {        case "TextBox1":            Label3.Text = "TextBox1 text was changed";            break;        case "TextBox2":            Label4.Text = "TextBox2 text was changed";            break;    }}
    este código verifica para ver o controle que disparou o evento e relata isso para o usuário usando o controle Label approprite. Observe que essa função manipula o evento TextChanged para ambos os controles TextBox criados dinamicamente. Por padrão, AutoPostBack é false para os controles TextBox . Portanto, alterar o texto nos controles não causa um PostBack para o servidor. No entanto, quando Enviar botão é clicado para lançar o formulário para o servidor, os eventos TextChanged para os controles TextBox são disparados e essa função é chamada.

Salvar, criar e executar o exemplo

Salve e criar o exemplo. Para executá-lo no Visual Studio. NET, clique com o botão direito no arquivo .aspx e, em seguida, clique em View in Browser .

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 317794 - Última Revisão: 06/25/2003 15:50:03 - Revisão: 4.4

Microsoft ASP.NET 1.0, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft ASP.NET 1.1, Microsoft Visual C# .NET 2003 Standard Edition

  • kbmt kbctrlcreate kbevent kbhowtomaster kbservercontrols kbwebforms KB317794 KbMtpt
Comentários
>