como fazer uma consulta em outro form sem perder os parametr
16/07/2008
0
estou com um problema que está me quebrando, tenho uma página de ´Pedidos´, sendo que nesta mesma página tenho vários ´itens´ sendo inseridos em uma gridview dinamicamente desconectada, até aí ta tudo certo, o grande problema é quando o usuário não lembra o código do item e quer fazer uma consulta, então clica no botão consulta e é direcionado para a página de ´consulta de itens´ e nesta página faz a consulta e seleciona o item desejado, o problema é que na volta para a página de ´Pedidos´ ele perde todos os dados que tinham antes de fazer a consulta, teria algum modo sendo com ajax ou sem de fazer esta consulta sem perder os dados atuais????
Grato,
Ibanes!
Ibanes
Posts
16/07/2008
Ricardo Silva
sabe fazer isso??
na duvida soh posta
16/07/2008
Ibanes
queria pelo transferir um listbox inteiro ou um grid mas não sei como fazer...
será que seria possível gravar um xml e quando voltar para o form inicial recuperar os dados???
o que fazer quando necessita buscar itens em outro form e ir adicionando no atual???
17/07/2008
Ricardo Silva
provavelmente numa variavel de sessão...
tipo assim em C#
//Cria uma variavel de sessão do tipo DataSet public DataSet getDataSetCar() { if(Session["Car"] == null) { //Cria uma tabela dinamica em tempo de execução DataSet ds = new DataSet(); DataColumn colCod = new DataColumn("PRD_CODIGO", Type.GetType("System.Int32"), ""); DataTable dt = new DataTable("Car"); //Adiciona colunas na tabela dt.Columns.Add(colCod); dt.Columns.Add("PRD_NOME", Type.GetType("System.String"), ""); dt.Columns.Add("PRD_QTD", Type.GetType("System.Int32"), ""); dt.Columns.Add("PRD_VENDA", Type.GetType("System.Double"), ""); dt.Columns.Add("SUBTOTAL", Type.GetType("System.Double"), "PRD_VENDA*PRD_QTD"); dt.Columns.Add("TOTAL", Type.GetType("System.Double"), "Sum(SUBTOTAL)"); dt.Columns.Add("ESTOQUE", Type.GetType("System.Int32"), ""); //Key Field (chave da tabela) DataColumn[] keys = new DataColumn[1]; keys[0] = colCod; dt.PrimaryKey = keys; ds.Tables.Add(dt); Session["Car"] = ds; return ds; } else { return Session["Car"] as DataSet; } } // Adiciona um Item ou altera a qantidade do Item private void add(int quantidade) { produto.Codigo = (int)request.QueryString["item"]; DataTable itemSelecionado = produto.consultar(produto.Codigo.ToString()).Tables[0]; //verifica se o tem selecionado já foi adicionado ao grid DataTable dt = getDataSetCar().Tables[0]; DataRow row = dt.Rows.Find(isInt(txtproduto.Text)); // Adiciona a linha row no Grid if(row == null) { row = dt.NewRow(); row["PRD_CODIGO"] = isInt(txtproduto.Text); row["PRD_NOME"] = itemSelecionado.Rows[0].ItemArray[1].ToString(); row["PRD_QTD"] = quantidade; row["PRD_VENDA"] = double.Parse(txtPreco.Text);// itemSelecionado.Rows[0].ItemArray[2].ToString(); row["ESTOQUE"] = itemSelecionado.Rows[0].ItemArray[3].ToString(); dt.Rows.Add(row); } else { int qtd = (int)row["PRD_QTD"]; quantidade += qtd; row["PRD_QTD"] = quantidade; } } private void Remove(int aId) { DataSet ds = getDataSetCar(); DataRow row = ds.Tables[0].Rows.Find(aId); if(row != null) { ds.Tables[0].Rows.Remove(row); ds.AcceptChanges(); gridProduto.DataSource = getDataSetCar(); gridProduto.DataBind(); } }
no serverTransfer vc passa o código do item e a quantidade.
utilize a função Add(); para adicionar o item no carrinho de compra.
ah... tem umas funçoes e variaveis ja criadas q naum foi postadas... espero q compreenda.
na duvida soh posta
21/07/2008
Ibanes
O problema é que aqui na empresa onde eu trabalho eles não deixam utilizar variáveis de sessão pois tem um certo padrão e por isso pensei em criar uma função para gravar um XML temporário e ler quando precisar, assim posso ir adicionando quando quiser e o mesmo para deletar e assim que fosse gravado o pedido eu poderia apagar o arquivo, será que isso fica mto pesado?? pensei também em usar os tabsContaner do AJAX, assim poderia subdividir em tabs assim seria uma para inserir os itens, outra para soncultar, outra para cadastrar um item.....
Outra alternativa também seria utilizar divs em hidden onde quando fosse consultar deixava a tela inteira em hidden e setava visible true somente para a consulta e ambas na mesma posição sempre...
ideias :)
[]´s
21/07/2008
Ricardo Silva
da suas ideia as que eu gostei mais foi a de usar o TabPanel do AjaxControlToolKit mesmo. ja brinquei um pouco com eles mas nada de esxtravagante... mas creio que poderia resolver seu problema. é ou não (rsrsr).
Clique aqui para fazer login e interagir na Comunidade :)