none
Montar formulario e resgatar em tempo de execução RRS feed

  • Pergunta

  • Bom Dia Amigos!

    Estou desenvolvendo um e-commerce e estou com uma duvida, referente ao controle de estoque.

    Quando o cliente cadastra os produtos, ele tem um checkboxlist com os tamanhos do produto, após ele cadastrar o produto e direcionado para uma página onde ele devera informar a quantia de cada tamanho no estoque.

    Por exemplo:

    Cadastrei uma camiseta com os tamanhos P,M,G

    após salvar preciso redirecionar o cliente para um controle onde ele vai informar a quantia de cada tamanho

    P   12

    M   20

    G   50

    Porem eu queria criar os label com os tamanho e os textbox para ele inserir a quantia em tempo de execução, eu pensei em passar uma viewstate dos tamanho selecionado para a pagina de estoque e de alguma maneira que eu não sei como, criar os label e textbox com base nos valore do objeto.

    E posteriormente resgata-los para salvar na base de dados.

    Se alguém poder me ajudar ficarei muito agradecido.

    Obrigado desde já


    "Nunca deixe que os outros te subestimen, mas tambem não seja arrogante seja humilde e prove quem é

    quinta-feira, 13 de dezembro de 2012 14:40

Todas as Respostas

  • Atila, bom dia

    eu fiz um pequno código de exemplo, nada perfeito, mas, vamos ver se ajuda

    seguinte: para o html simples

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="b342fc54-b277-49f6-8e71-dd77c5243abf.aspx.cs" Inherits="Forum.Msdn.WebForms.b342fc54_b277_49f6_8e71_dd77c5243abf" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Panel runat="server" ID="pnlControles" Width="100%" Height="100%">
            
            
            </asp:Panel>
            <asp:Button runat="server" ID="btnSalvar" Text="Salvar" OnClick="btnSalvar_Click" />    
        </div>
        </form>
    </body>
    </html>
    

    temos o seguinte code-behind

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace Forum.Msdn.WebForms
    {
        public partial class b342fc54_b277_49f6_8e71_dd77c5243abf : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
            protected override void OnPreLoad(EventArgs e)
            {
                //Captura as propriedades
                System.Reflection.PropertyInfo[] propriedades = typeof(Roupa).GetProperties();
                foreach (var PI in propriedades)
                {
                    //Instância os controles e adiciona ao Panel
                    Label lbl = new Label();
                    lbl.Text = PI.Name;
                    this.pnlControles.Controls.Add(lbl);
                    TextBox txt = new TextBox();
                    txt.ID = "txt" + PI.Name;
                    this.pnlControles.Controls.Add(txt);
                    this.pnlControles.Controls.Add(new Literal() { Text = "</br>" });
                }
                base.OnPreLoad(e);
            }
    
            protected void btnSalvar_Click(object sender, EventArgs e)
            {
                //Captura os valores digitados
                int p, m, g;
                
                foreach (TextBox t in this.pnlControles.Controls.OfType<TextBox>())
                {
                    switch (t.ID.Replace("txt",string.Empty))
                    {
                        case "P": p = int.Parse(t.Text); break;
                        case "M": m = int.Parse(t.Text); break;
                        case "G": g = int.Parse(t.Text); break;
                    }
                }
    
            }
        }
        public class Roupa
        {
            public int P { get; set; }
            public int M { get; set; }
            public int G { get; set; }
        }
    }

    o que fazemos é ler as propriedades da classe e criar controles em tempo de execução

    no evento do botão capturamos os valores digitados. claro o código nao ta perfeito mas é so um exemplo

    boa sorte


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Twitter @Olavooneto
    Facebook Olavo Neto
    Linkedin Olavo Neto
    Se for útil marque como resposta e faça um Developer feliz :)

    sexta-feira, 14 de dezembro de 2012 11:54
    Moderador