none
Text Box - valores Client side X Server side RRS feed

  • Pergunta

  • Bom dia!

    Estou com um problema quando tento recuperar valores de um textbox que alterei a propriedade Text do lado do servidor e o usuário alterou na página para um novo valor, o c# sempre pega o valor que foi alterado do lado do servidor, ignorando a alteração que o usuário fez na página.

    Se alguém tiver alguma dica fico grato.

    Obrigado.

    quarta-feira, 6 de junho de 2012 13:51

Respostas

  • Valter se vc tem que fazer o postback faz assim, cria um <input id="servidor" type="hidden" runat="server"> e nele qdo vc der o poastback vc marca ele com servidor.value = "1" e o carregamento dos dados no servidor vc faz so se o valor dele for 0

    assim if servidor.value == "0"  carrega os dados nos textbox se não for nao carrega assim os dados não são sobrepostos .


    Junior

    • Marcado como Resposta Valter FSK quarta-feira, 6 de junho de 2012 16:29
    quarta-feira, 6 de junho de 2012 16:20

Todas as Respostas

  • pq vc não guarda o valor em um hidden ?

    Junior

    quarta-feira, 6 de junho de 2012 13:59
  • Bom dia Junior,

    Esta é um tela de edição de informações, o usuário escolhe uma informação em uma lista e quer edita-la, assim quando clica a página é carregada com as informações referentes aquele cadastro no form , assim ele edita os campos que interessarem, e o que ele não alterar permanece como era.

    Obrigado.

    quarta-feira, 6 de junho de 2012 14:05
  • Valter tenho algo assim tb e não tenho nenhum problema com relação as alterações ou não ele sempre pega o valor que está nos textbox da página e qdo o usuário clica no botão gravar ele grava os dados dos textbox, a não ser que por algum motivo vc esteja enviando os dados novamente para o servidor antes de gravar, é isso que está acontecendo ? pq se for basta vc colocar no load da sua página no ispostback o carregamento dos dados nos devidos textbox assim ele não altera os textbox que o usuário ja informou, entendeu ?

    Junior

    quarta-feira, 6 de junho de 2012 14:25
  • Junior,

    Segue parte do código do botão gravar:

                            SqlCommand updateSite = new SqlCommand(@"UPDATE LinksPMB SET "
                            + "label = @label, "
                            + "[description] = @description, "
                            + "link = @link where id = @id", thisConnection);
                            updateSite.Parameters.Add("@id", SqlDbType.Int, 9999).Value = iId;
                            updateSite.Parameters.Add("@label", SqlDbType.VarChar, 50).Value = txbAplicacao.Text;
                            updateSite.Parameters.Add("@description", SqlDbType.VarChar, 255).Value = txbDescricao.Text;
                            updateSite.Parameters.Add("@link", SqlDbType.VarChar, 100).Value = txbLink.Text;
                            updateSite.ExecuteNonQuery();

    Debuguei e tudo é executado, porém o valor que ele recupera dos text box são os mesmos que passei no trecho abaixo:

                if (Request.QueryString["id"] != "" && Request.QueryString["id"] != null)
                {
                    edicao = true;
                    iId = Convert.ToInt32(Request.QueryString["id"]);
                    try
                    {
                        SqlCommand thisCommand = thisConnection.CreateCommand();
                        thisCommand.CommandText = "select * from linksPMB where id = @id";
                        thisCommand.Parameters.Add("@id", SqlDbType.Int, 9999).Value = Request.QueryString["id"];
                        SqlDataReader thisReader = thisCommand.ExecuteReader();
                        thisReader.Read();
                        txbAplicacao.Text = thisReader["label"].ToString();
                        txbDescricao.Text = thisReader["description"].ToString();
                        txbLink.Text = thisReader["link"].ToString();
                        imgIcon.ImageUrl = "/imagemSite.ashx?id=" + Request.QueryString["id"].ToString();
                        thisReader.Close();
                    }
                    catch (SqlException sqle)
                    {
                        Console.WriteLine(sqle.Message);
                    }
                    
                }

    quarta-feira, 6 de junho de 2012 14:54
  • O que o Junior disse tem razão, como tá o seu Load da Página ?
    quarta-feira, 6 de junho de 2012 16:14
  • Valter se vc tem que fazer o postback faz assim, cria um <input id="servidor" type="hidden" runat="server"> e nele qdo vc der o poastback vc marca ele com servidor.value = "1" e o carregamento dos dados no servidor vc faz so se o valor dele for 0

    assim if servidor.value == "0"  carrega os dados nos textbox se não for nao carrega assim os dados não são sobrepostos .


    Junior

    • Marcado como Resposta Valter FSK quarta-feira, 6 de junho de 2012 16:29
    quarta-feira, 6 de junho de 2012 16:20
  • Valeu pela Ajuda.

    Muito obrigado.

    quarta-feira, 6 de junho de 2012 16:30