24. april 2006 - 09:55Der er
19 kommentarer og 2 løsninger
Id på controller skifter ?
Hejsa,
Jeg har over weekende erfaret at id'er på nogle textboxe åbentbart skifter som det passer dem. Hvis jeg opretter en en textbox med id txt_Name så laves det om til ctl00_txt_Name hvilket hvilket jeg så har sat et javascript til at respondere på nu ligger landet så sådan at mit javascript ikke længere virker hvilket skyldes at id'et på textbox'en pludselig er ændret til ctl01_txt_Name i stedet for ctl00_txt_Name.
Hvad sker der lige og hvorfor ændre id'et sig ?
Jeg har ikke lavet nogle ændringer på siden så det er ikke derfor ?
Det er sådan her: alert( '<%= txt_name.ClientID %>' );
Din kontrol får ctl01_ på for at ASP.NET parseren kan holde styr på ViewState og dit kontroltræ. ctl01_txt_name betyder at du har en kontrol (her er det din <form runat="server">) der får id'et ctl01, og at txt_name ligger i dens ControlCollection.
Prøv at lave en PlaceHolder inde i din form, og så ligge en textbox derind. Så er ClientID'et pludselig noget helt andet :-)
Forklaring til mit javascript. Jeg popper et vindue med Default.aspx?field=ctl00_TextBox5 hvor ctl00_TextBox5 er ideet fra textbox'en. På den måde ved jeg hvilken textbox jeg skal respondere til i mit popup vindue. Her klikker jeg så på et link som smider et tal i min textbox og lukker det poppede vindue efter sig og det virker så ikke når id'et tilsyneladende skifter som vinden blæser.
Du kan bruge: <a id="A1" href='' onclick="PopWin('../treeview/Default.aspx?field=<%=Textbox1.ClientID%>','440','550')">Pop</a> <asp:textbox ID="Textbox1" runat="server"></asp:textbox>
Ja ser du det var jo en helt anden snak, så har jeg bare lidt småting der skal ændres i min codebehind da jeg jo så som eks. ikke kan lave A1.Title = "Popper et nyt vindue", men det kan jeg nok godt leve med ;o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.