Array
(
)

TextBox em template column do Gridview nao retem text

Williamrocha
   - 23 fev 2008

Ola Pessoal,

Fiz um grid c/ 3 colunas: Codigo,Descricao,Qtd. Onde sao listados
produtos especificos e na coluna Qtd coloquei um TextBox chamado ´tbQtd´ p/ q o usuario informe a qtd q deseja de cada um. No
final da página coloquei um botao ´Gravar´. No evento click do botao
coloquei o codigo abaixo:
-------------------------------------------------------------------------
foreach(GridViewRow gdr in GridView1.Rows){
if (gdr.RowType == DataControlRowType.DataRow)
{
TextBox tx = (TextBox)gdr.FindControl(´tbQtd´);
if (tx != null)
{
Response.Write(´tbQtd->[´ + tx.Text + ´]´);
}
else
{
Response.Write(´Nao achei tbQtd´);
}

}
}
-------------------------------------------------------------------------
O resultado eh q nao consigo obter o conteudo do textbox - resposta sempre ´tbQtd->[]´. O EnableViewState do GridView está true, bem como o do TextBox.

Obrigado a todos

William Rocha

Ivan.c#
   - 26 fev 2008

Tenta assim:

#Código

foreach (GridViewRow row in GridView1.Rows)
            {
                int Quantity = Convert.ToInt32(((TextBox) row.FindControl("tbQtd")).Text);
                if (Quantity != 0)
                {
                     Response.Write("tbQtd->[" + Quantity + "]");
                }
                else
                {
                     Response.Write("Nao achei tbQtd");                    
                }
            }


Williamrocha
   - 27 fev 2008

Ola Ivan,

Testei o seu codigo e aconteceu o mesmo problema... no desespero criei outro projeto importando o aspx e funcionou... daih voltei pro projeto original e comecei novamente a buscar a causa...
Acabei achando o problema... no Load da Masterpage, acho q em um momento de total insanidade, coloquei um this.DataBind() sem nem mesmo um !IsPostBack.
Muito obrigado pela atencao e tempo dedicado a me ajudar

Um abraco

William Rocha