Entwickler-Ecke

ASP.NET und Web - Problem mit Focus für Textbox


Steven85 - Fr 28.11.14 00:42
Titel: Problem mit Focus für Textbox
Hallo zusammen,

mit txtName.Focus() setze ich den Fokus auf eine Textbox in in ASP.Net. Jetzt habe ich aber das Problem das der Cursor, sofern bereits etwas in der Textbox drin stand, dann immer auf die erste Position gesetzt wird.

Gibt es eine Möglichkeit den Cursor ans ende zu setzen, z.B. mit der Simulation der Taste 'Ende'?
Ganz so einfach wie in Win Forms geht es wohl nicht.


C# - Fr 28.11.14 12:54

Hallo,

Beim ASP Forum [http://forums.asp.net/t/1087412.aspx?Set+cursor+position+in+TextBox] hatte einer das gleiche Problem.


Steven85 - Fr 28.11.14 14:12

Den Beitrag hatte ich auch schon gefunden. Funktioniert aber nicht da Javascript vor der Datenbankabfrage ausgeführt wird.
Erst im Codebehind verliert die Textbox den Focus, also nach der Datenbankabfrage. Danach setze ich den Focus ja mit C# direkt wieder auf die Textbox, aber halt leider nur auf den Anfang.
Kann nicht einfach irgendwie in ASP die Taste 'Ende' simulieren?


Christoph1972 - Fr 28.11.14 17:04

Hi :-)


C#-Quelltext
1:
2:
3:
4:
5:
private void button2_Click(object sender, RoutedEventArgs e)
{
    textBox1.Focus();
    textBox1.Select(textBox1.Text.Length, 0);
}


Steven85 - Fr 28.11.14 17:28

user profile iconChristoph1972 hat folgendes geschrieben Zum zitierten Posting springen:
Hi :-)


C#-Quelltext
1:
2:
3:
4:
5:
private void button2_Click(object sender, RoutedEventArgs e)
{
    textBox1.Focus();
    textBox1.Select(textBox1.Text.Length, 0);
}


In ASP gibt es die Funktion Select leider nicht :(


Steven85 - Mo 01.12.14 14:30

Es geht nur mit Javascript, den muss man jedoch über die Codebehind aufrufen, da die aspx vor der Codebehind ausgeführt wird.


HTML-Dokument
1:
2:
3:
4:
5:
function SetCursor(sControlID) {
    var textBox = document.getElementById(sControlID);
    textBox.focus();           
    textBox.setSelectionRange(textBox.value.length, textBox.value.length);
}



C#-Quelltext
1:
ScriptManager.RegisterStartupScript(thistypeof(formIrgendwas), "SetCursor""SetCursor('" + txt.ClientID + "');"true);