dilonghi 0 Denunciar post Postado Agosto 10, 2010 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
André Freitas 0 Denunciar post Postado Agosto 10, 2010 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
rockysp 0 Denunciar post Postado Agosto 11, 2010 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
dilonghi 0 Denunciar post Postado Agosto 11, 2010 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: 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
rockysp 0 Denunciar post Postado Agosto 11, 2010 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
dilonghi 0 Denunciar post Postado Agosto 13, 2010 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
rockysp 0 Denunciar post Postado Agosto 18, 2010 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
dilonghi 0 Denunciar post Postado Setembro 2, 2010 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