Usuário com melhor resposta
Text Box - valores Client side X Server side

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.
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
Todas as Respostas
-
-
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.
-
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
-
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); } }
-
-
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
-