none
textbox receber foco no final do texto RRS feed

  • Pergunta

  • olá galera , tenho esse código

    public void edtNome_TextChanged(object sender, EventArgs e)
            {
                try
                {
                    t_colaborador.ControleColaborador readerColaborador = new t_colaborador.ControleColaborador();
    
                    MySqlDataReader retornaColaboradorAgenda;
    
                    if (edtNome.Text == "")
                    {
                        retornaColaboradorAgenda = readerColaborador.listaColaboradorAgenda();
                    }
                    else
                    {
                        retornaColaboradorAgenda = readerColaborador.listaColaboradorAgenda(edtNome.Text.Trim());
                    }
                    grdAgenda.DataSource = retornaColaboradorAgenda;
                    grdAgenda.DataBind();
    
                    edtNome.Focus();
     
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }      

    porém o focus fica sempre na primeira posição do textbox, o que eu preciso é que a seleção fique no final
    ou seja, se eu tenho escrito no text abc| (pipe sendo o cursos) depois de executar a função o textbox fica... |abc (sendo pipe o cursos) preciso q ele fique na frente do c abraços
    segunda-feira, 31 de março de 2014 20:07

Respostas

  • Configure o seu HTML do TextBox para que ao receber o foco, ele mova o cursor para o final atraves de um javascript.

    Veja:

    HTML do Textbox:

    <asp:TextBox ID="edtNome" runat="server" AutoPostBack="True" OnTextChanged="edtNome_TextChanged" onfocus="moveCursor(this.id);"></asp:TextBox>


    Função javascript:

    <script type="text/javascript">
             function moveCursor(textControlID) {
                 var t1 = document.getElementById(textControlID);
                 t1.focus();
                 t1.value = t1.value;
             }
        </script>

    Referência: http://forums.asp.net/post/4785431.aspx

    Abraços,



    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    • Marcado como Resposta Giovani Cr quinta-feira, 3 de abril de 2014 19:55
    terça-feira, 1 de abril de 2014 16:38

Todas as Respostas

  • Configure o seu HTML do TextBox para que ao receber o foco, ele mova o cursor para o final atraves de um javascript.

    Veja:

    HTML do Textbox:

    <asp:TextBox ID="edtNome" runat="server" AutoPostBack="True" OnTextChanged="edtNome_TextChanged" onfocus="moveCursor(this.id);"></asp:TextBox>


    Função javascript:

    <script type="text/javascript">
             function moveCursor(textControlID) {
                 var t1 = document.getElementById(textControlID);
                 t1.focus();
                 t1.value = t1.value;
             }
        </script>

    Referência: http://forums.asp.net/post/4785431.aspx

    Abraços,



    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    • Marcado como Resposta Giovani Cr quinta-feira, 3 de abril de 2014 19:55
    terça-feira, 1 de abril de 2014 16:38
  • Existe um truque bem simples para resolver este problema. Tente isso:

            <asp:TextBox ID="edtNome" runat="server" Text="Some Text" onfocus="this.value = this.value;"></asp:TextBox>

    O segredo está no evento "onfocus" que atribui o valor do campo para ele mesmo. Fazendo isso o cursor vai para o final do texto.

    Espero ter ajudado.


    Renato Person | MCPD


    • Editado Renato Person quarta-feira, 2 de abril de 2014 17:00
    • Sugerido como Resposta Renato Person quarta-feira, 2 de abril de 2014 19:54
    quarta-feira, 2 de abril de 2014 16:56