Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dilonghi

Preciso de uma luz para iniciar

Recommended Posts

Pessoal,

 

Não achei nada a respeito..

 

Estou precisando fazer um Formulário de Pedidos, onde os produtos são listados vindos da Base de dados, em uma Lista.

Em cada item preciso de apenas um campo textbox para inserir a quantidade de itens deste produto.

 

Então meus problemas são:

 

1. Como criar textbox e vincular com o Id do produto

2. Como recuperar o valor deste textbox junto com o id de um determinado produto.

 

Estava listando os produtos em um DataList, mas não sei se este é o caminho.

 

Alguma Luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara,vai depender de como você quer exibir esses produtos e como esta sua base de dados... normalmente um formulario de pedidos é exibido no formato mestre-detalhe

Vou deixar abaixo alguns links que podem te ajudar

 

http://www.macoratti.net/aspn2_gv.htm

http://www.macoratti.net/07/05/aspn_3md.htm

http://msdn.microsoft.com/pt-br/library/cc580599.aspx

http://www.macoratti.net/07/07/aspn_frv.htm

http://www.macoratti.net/aspn_gsd.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sinceramente acho que nunca usei um DataList, normalmente para esses casos utilizo o GridView mesmo, mas pelo que dei uma olhada o procedimento para ser parecido. Tenta isso:

 

No ItemTemplate do DataList você pode inserir um TextBox que você pode controlar o ID pela propriedade DataKeyField do seu DataList. No GridView eu acho um pouco mais intuitivo, mas o procedimento parece ser o mesmo.

 

da uma olhada nesses artigos o primeiro mostra bem como fazer no GridView, e o segundo mostra como fazer no DataList:

 

http://imasters.com.br/artigo/12343/aspnet/integrando_controles_de_validacao_no_gridview/

http://csharpprogramando.blogspot.com/2009/02/artigo-editando-templates-datalist.html

 

 

 

Espero ter ajudado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante as sugestões dadas.. mas nao sei se algum dos links se refere ao que eu preciso.

 

os liks se referiam mais a edicao do proprio registro, mas preciso na verdade, atraves de uma lista de produtos, adicionar quantidades e fazer um insert na tabela Pedidos.

entao em cada produto, teria um textbox para o usuario adicionar a Quantidade, no final enviar tudo.

 

Estou usando o datalist para listar os produtos, pois o cliente queria em 2 colunas, e com datalist fica bem facil fazer isso.

 

abaixo uma imagem de como esta o formulário:

 

Imagem Postada

 

O que estou fazendo é migrar um sistema de pedidos que ele tem de um Excel para uma aplicação web. estou tentando fazer o mais parecido.

 

se tiverem mais dicas.. Agradeço muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então ficou até mais fácil, você vai no ItemTemplate do próprio DataList e insere o TextBox e depois sai varrendo linha a linha e lê o TextBox que você inseriu, daí quando ler, se o valor for mais que 0 você já executa o código para gravar.

 

for (int i = 0; i < DataList1.Items.Count; i++)
{
    //Executa o código para gerar o valor total e grava no seu banco.
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem interessante essa forma.. com isso me deu uma luz que pode resolver. nao é o ideal mas acho que vai resolver.

Ao lado do campo, adicionei um botao, com um comando OnUpdateCommand="DataList1_EditCommand"

e atraves do metodo, consigo recuperar o Id e a quantidade inserida.

 

O unico problema é que em cada linha de produto o cara vai ter q clicar no botao.

O interessante seria um botao no final.. e usar a tua ideia, só que nao sei como fazer isso.

 

Como ter um botao no final ou fora do datalist, que recupere entao linha por linha do o campo textbox junto com o Id do produto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dilonghi

 

Veja o exemplo, eu criei uma tabela [Tabela1] com os campos codigo e descricao e listei no DataList, organizei tudo dentro de uma tabela html no ItemTemplate. No final coloquei um botão que varre as linhas do DataList e executa um código qualquer para gravar os itens do pedido.

 

ASPX

<asp:DataList ID="DataList1" runat="server" DataKeyField="codigo" 
    DataSourceID="SqlDataSource1" Width="322px">
    <ItemTemplate>
        <table style="width:100%;">
            <tr>
                <td class="style1">
                    <asp:TextBox ID="TextBox1" runat="server" Width="38px"></asp:TextBox>
                </td>
                <td>
                    <asp:Label ID="descricaoLabel" runat="server" Text='<%# Eval("descricao") %>' />
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:bd1ConnectionString %>" 
    ProviderName="<%$ ConnectionStrings:bd1ConnectionString.ProviderName %>" 
    SelectCommand="SELECT codigo, descricao FROM [Tabela1]">
</asp:SqlDataSource>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

CodeBehind

protected void Button1_Click(object sender, EventArgs e)
{
    //Varre todas as linhas do DataList
    for (int i = 0; i < DataList1.Items.Count; i++)
    {
        //Resgata o valor do TextBox da Linha i
        string qtd = ((TextBox)DataList1.Items[i].FindControl("TextBox1")).Text;
        
        //Verifica se o TextBox está preenchido.
        if (qtd != string.Empty)
        {
            //Recupera o código
            string codigo = DataList1.DataKeys[i].ToString();

            //Executa o Insert do seu pedido.
        }
    }
}

 

Veja se ajuda....

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola rockysp

 

Muito obrigado pelas respostas.. com suas dicas, funcionou perfeitamente.. sem a necessidade de ter um Enviar em cada iten..

um unico metodo, pega todos produtos Diferentes de Zero.. e faz o insert na tabela de Itens do Pedido..

 

Grande Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.