Usuário com melhor resposta
Comparar valor da Gridview com um textbox

Pergunta
-
Amigos boa noite!,
Gostaria de uma ajuda, estou finalizando uma aplicação para controle de estoque, e tenho uma parte onde há as requisições de fornecimentos.
Exemplo:
Quantidade Solicitada x Quantidade Atendida.
Sendo que o campo quantidade solicitada é obtida via select e setado na gridview e a quantidade atendida é um texbox que eu informo um valor que não ultrapasse a quantidade disponível.
Sendo assim como eu consigo em um Gridview comparar o valor do textbox (quantidade atendida) com o label(quantidade solicitada)?
Fico no aguardo, desde já obrigado!Att,
Respostas
-
Consegui fazer de outra forma, estou postando para futuras dúvidas.
Desde já agradeço Rodrigo e Robson, pelas respostas.
Alterei apenas o código de validação
TextBox txtQtdeAtendida = (TextBox)sender; GridViewRow currentRow = (GridViewRow)txtQtdeAtendida.Parent.Parent; int rowindex = 0; rowindex = currentRow.RowIndex; Label lblQtdeRequisitada = (Label)currentRow.FindControl("lblQtdeRequisitada"); int requisitada = Convert.ToInt32(lblQtdeRequisitada.Text); int atendida = Convert.ToInt32(txtQtdeAtendida.Text); if (atendida > requisitada) { lblMensagem.Text = "Operação inválida"; } else { lblMensagem.Text = "OK"; }
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 10 de abril de 2017 13:06
Todas as Respostas
-
Bom dia Elton,
Obrigado pela participação no Fórum MSDN.
A comparação deve ser feita entre o valor da textbox e da label?
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Oi Elton, tudo bom?
Recupere o valor da textbox e jogue em uma variável:
var ex1 = Convert.ToDecimal(textbox1.Text);
recupera o valor do grid e jogue em uma váriavel
var ex2 = GridView1.Rows[0].Cells[0].Text;//no rows vc coloca o index da linha que vc quer recuperar, no cell o index da coluna que vc quer recuperar
OU se for uma linha selecionável:
var ex2 = this.GridView1.SelectedRow.Cells[0].Text;//colocar o index da coluna
Após isso, basta comparar as variáveis
if(ex1>ex2)
{}
ok?Se a resposta for relevante,click em "útil".Se a resposta resolveu seu problema, click em "Marcar como Resposta".
Rodrigo Suleiman [MCP,MCTS,MCPD,MCSA,MCSD]- Sugerido como Resposta Robson William SilvaModerator sexta-feira, 7 de abril de 2017 20:11
-
Opa bom dia!
Cara não consegui da forma que você falou, eu coloquei um texbox e acionei o evento TextChanged porém não consigo obter o valor da coluna referência.
<asp:GridView ID="GridRequisicaoItens" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridRequisicaoItens_RowDataBound">
<Columns> <asp:TemplateField> <ItemTemplate> <asp:TextBox ID="txtQtdeAtendida" runat="server" OnTextChanged="txtQtdeAtendida_TextChanged" AutoPostBack="True"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:Label ID="lblQtdeRequisitada" runat="server" Text='<%# Eval("QTDE_PRODUTO_REQUISICAO_ITEM") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:ButtonField Text="Botão" /> </Columns> </asp:GridView>
Código do evento textchanged
Label lblQtdeRequisitada = (Label)GridRequisicaoItens.FindControl("lblQtdeRequisitada"); TextBox txtQtdeAtendida = (TextBox)sender; int requisitada = Convert.ToInt32(lblQtdeRequisitada.Text); int atendida = Convert.ToInt32(txtQtdeAtendida.Text); //int ex2 = lblQtdeRequisitada;if (atendida > requisitada) { lblMensagem.Text = "Operação inválida"; } else { lblMensagem.Text = "OK"; }
Porém me retorna a mensagem "Object reference not set to an instance of an object.
-
Consegui fazer de outra forma, estou postando para futuras dúvidas.
Desde já agradeço Rodrigo e Robson, pelas respostas.
Alterei apenas o código de validação
TextBox txtQtdeAtendida = (TextBox)sender; GridViewRow currentRow = (GridViewRow)txtQtdeAtendida.Parent.Parent; int rowindex = 0; rowindex = currentRow.RowIndex; Label lblQtdeRequisitada = (Label)currentRow.FindControl("lblQtdeRequisitada"); int requisitada = Convert.ToInt32(lblQtdeRequisitada.Text); int atendida = Convert.ToInt32(txtQtdeAtendida.Text); if (atendida > requisitada) { lblMensagem.Text = "Operação inválida"; } else { lblMensagem.Text = "OK"; }
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 10 de abril de 2017 13:06