Jag har ett formulär med en datagrid som bl a i en kolumn har en textbox. Datagriden innehåller 5 rader, det finns m a o 5 textboxar. När sidan laddas vill jag att fokus skall vara satt på den första textboxen. Problemet är att namnet på textboxarna sätts dynamiskt, t ex heter de Datagrid1_ctl:2txtAliasName. Hej, Det lät ju enkelt men jag får det inte att fungera, id:na matchar inte riktigt.Fokus på textbox i datagrid
Jag har testat att loopa igenom ala Controls i den första raden, leta efter en textbox och sätta focus på denna men då har textboxen det statiska namn den får när jag är i designläge, endast txtAliasName. Försöker jag anropa denna via JavaScript så hittas aldrig textboxen.
Ngn som har en lösning på detta?
/MagnusSv: Fokus på textbox i datagrid
Du kan enkelt få reda på vad kontrollens renderade id är genom att använda propertyn <b>ClientID</b>.
/mSv:Fokus på textbox i datagrid
När jag kör "View Source" på den renderade HTML-sidan ser det ut så här för den aktuella kontrollen:
<CODE>
name="DataGrid1:_ctl2:DataGrid1__ctl2_AliasName"
id="DataGrid1__ctl2_DataGrid1__ctl2_AliasName"
</CODE>
I min codebehind-sida försökte jag använda ClientID som ID för att sedan hitta det, sedan kör jag ett javascript för att sätta fokus på kontrollern:
<CODE>
ctrl.ID = ctrl.ClientID;
string strS = "<SCRIPT language='javascript'>document.getElementById('" + ctrl.ID + "').focus() </SCRIPT>";
page.RegisterStartupScript("focus", strS);
</CODE>
Man när jag steppar igenom koden och kollar på ctrl.ClientID så är den "DataGrid1__ctl2_AliasName".
Jag vill ju matcha detta mot det renderade id:t i HTML-sidan men de matchar ju inte.
Har jag missat ngt?
/Magnus