Problema para pegar o valor do objeto dentro de um Repeater
28/11/2017
0
Estou com um problema quando tento pegar o valor do objeto dentro de um Repeater.
Tenho um campo chamado "txtConsumo" dentro do meu repeater, só que quando vou pegar o valor para salvar no DB, ele não pega o valor que foi alterado, não pega o valor que eu digitei. Sempre passa o valor que veio carregado no objeto.
Exemplo:
TextBox txtConsumo = item3.FindControl("txtConsumo") as TextBox;
string itemtxt = txtConsumo.Text;
Nesse caso sempre retorna o valor que veio carregado e não o valor novo que digitei.
Como eu faço para resolver esse problema?
protected void btnConfirm_Click(object sender, EventArgs e)
{
foreach (RepeaterItem item in rLinha.Items)
{
HiddenField hfLinha = item.FindControl("hfLinha") as HiddenField;
IDLinhaTrabalho = hfLinha.Value.ToString();
Repeater rNUtricao = (Repeater)item.FindControl("rNUtricao");
foreach (RepeaterItem item2 in rNUtricao.Items)
{
HiddenField hNutricao = item2.FindControl("hNutricao") as HiddenField;
IDNutricao = hNutricao.Value.ToString();
TextBox txtPadronizacao = item2.FindControl("txtPadronizacao") as TextBox;
Repeater rNUtricaoTipo = (Repeater)item2.FindControl("rNUtricaoTipo");
foreach (RepeaterItem item3 in rNUtricaoTipo.Items)
{
HiddenField hNutricaoTipo = item3.FindControl("hNutricaoTipo") as HiddenField;
IDNutricaoTipo = hNutricaoTipo.Value.ToString();
//string saldo = ((TextBox)((Button)sender).Parent.Parent.FindControl("txtConsumo")).Text;
TextBox txtTipo = item3.FindControl("txtTipo") as TextBox;
TextBox txtConsumo = item3.FindControl("txtConsumo") as TextBox;
TextBox txtUnidadeMedida = item3.FindControl("txtUnidadeMedida") as TextBox;
TextBox txtParticipacaoNutriport = item3.FindControl("txtParticipacaoNutriport") as TextBox;
//TextBox txt = (TextBox)item3.FindControl("txtConsumo");
//string itemtxt = txtConsumo.Text;
if (txtConsumo.Text.ToString() != "")
{
string mensagem = "";
try
{
int IDHospitalPotencial = (new HospitaisDAO()).inserePontencialInstuitcao(IDHospital.ToString(), Int32.Parse(IDLinhaTrabalho), Int32.Parse(IDNutricao), Int32.Parse(IDNutricaoTipo), txtUnidadeMedida.Text.ToString(), txtConsumo.Text.ToString(), txtParticipacaoNutriport.Text.ToString(), Int32.Parse(Session["ID_Ciclo"].ToString()), txtPadronizacao.Text.ToString(), 1);
if (IDHospitalPotencial > 0)
{
mensagem = "Dados salvos com sucesso";
}
else
{
mensagem = "Não foi possivel salvar os dados";
}
}
catch (Exception ex)
{
mensagem = ex.Message;
}
finally
{
ScriptManager.RegisterStartupScript(this, typeof(MPage), "ShowModalHidden", "waitingDialog.hide(); alert('" + mensagem + "'); location.href='Cadastro.aspx?temp=0'", true);
}
}
}
}
}
}
Tenho um campo chamado "txtConsumo" dentro do meu repeater, só que quando vou pegar o valor para salvar no DB, ele não pega o valor que foi alterado, não pega o valor que eu digitei. Sempre passa o valor que veio carregado no objeto.
Exemplo:
TextBox txtConsumo = item3.FindControl("txtConsumo") as TextBox;
string itemtxt = txtConsumo.Text;
Nesse caso sempre retorna o valor que veio carregado e não o valor novo que digitei.
Como eu faço para resolver esse problema?
protected void btnConfirm_Click(object sender, EventArgs e)
{
foreach (RepeaterItem item in rLinha.Items)
{
HiddenField hfLinha = item.FindControl("hfLinha") as HiddenField;
IDLinhaTrabalho = hfLinha.Value.ToString();
Repeater rNUtricao = (Repeater)item.FindControl("rNUtricao");
foreach (RepeaterItem item2 in rNUtricao.Items)
{
HiddenField hNutricao = item2.FindControl("hNutricao") as HiddenField;
IDNutricao = hNutricao.Value.ToString();
TextBox txtPadronizacao = item2.FindControl("txtPadronizacao") as TextBox;
Repeater rNUtricaoTipo = (Repeater)item2.FindControl("rNUtricaoTipo");
foreach (RepeaterItem item3 in rNUtricaoTipo.Items)
{
HiddenField hNutricaoTipo = item3.FindControl("hNutricaoTipo") as HiddenField;
IDNutricaoTipo = hNutricaoTipo.Value.ToString();
//string saldo = ((TextBox)((Button)sender).Parent.Parent.FindControl("txtConsumo")).Text;
TextBox txtTipo = item3.FindControl("txtTipo") as TextBox;
TextBox txtConsumo = item3.FindControl("txtConsumo") as TextBox;
TextBox txtUnidadeMedida = item3.FindControl("txtUnidadeMedida") as TextBox;
TextBox txtParticipacaoNutriport = item3.FindControl("txtParticipacaoNutriport") as TextBox;
//TextBox txt = (TextBox)item3.FindControl("txtConsumo");
//string itemtxt = txtConsumo.Text;
if (txtConsumo.Text.ToString() != "")
{
string mensagem = "";
try
{
int IDHospitalPotencial = (new HospitaisDAO()).inserePontencialInstuitcao(IDHospital.ToString(), Int32.Parse(IDLinhaTrabalho), Int32.Parse(IDNutricao), Int32.Parse(IDNutricaoTipo), txtUnidadeMedida.Text.ToString(), txtConsumo.Text.ToString(), txtParticipacaoNutriport.Text.ToString(), Int32.Parse(Session["ID_Ciclo"].ToString()), txtPadronizacao.Text.ToString(), 1);
if (IDHospitalPotencial > 0)
{
mensagem = "Dados salvos com sucesso";
}
else
{
mensagem = "Não foi possivel salvar os dados";
}
}
catch (Exception ex)
{
mensagem = ex.Message;
}
finally
{
ScriptManager.RegisterStartupScript(this, typeof(MPage), "ShowModalHidden", "waitingDialog.hide(); alert('" + mensagem + "'); location.href='Cadastro.aspx?temp=0'", true);
}
}
}
}
}
}
Cesar Souza
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)