lefodnes Skrevet 7. januar 2009 Del Skrevet 7. januar 2009 Er det noen mulighet for å styre hva elementene som asp.net lager skal ha for slags id når de rendres til html? F.eks : <asp:TextBox ID="inpPostnr" runat="server" Width="30"></asp:TextBox> rendres slik: <input name="ctl00$cphMain$inpPostnr" type="text" value="7054" id="ctl00_cphMain_inpPostnr" style="width:30px;" /> For å få tak i denne vha javascripts GetElementById(), må jeg altså bruke GetElementById("ctl00_cphMain_inpPostnr"). cphMain kommer fra en "ContentPlaceHolderID" der dette elementet ligger. Men hvor kommer "ctl00" fra? Og vil den endre seg? Eller er det ikke meningen at man skal kombinere javascript og asp.net? Opplever jo det samme problemet når jeg skal bruke #-prefiksen i css slik #ctl00_cphMain_inpPostnr { border: solid 1px red; } Lenke til kommentar
BennyXNO Skrevet 8. januar 2009 Del Skrevet 8. januar 2009 <%= inpPostnr.ClientId() %> Bruker du i javascriptet ditt for å få tak i id'en til tekstboksen. Når det gjelder css så anbefaler jeg deg å bruke class konseptet. Lenke til kommentar
Jesper Karsrud Skrevet 20. januar 2009 Del Skrevet 20. januar 2009 IDen vil ikke forandre seg, men det irriterer meg også at ctl00-prefix kommer på id, da det fører til merarbeid i cssen hvis man går fra html-prototype til ferdig produkt. Når det gjelder css så anbefaler jeg deg å bruke class konseptet. Uenig. Er det et element som er unikt på hver side, ikke bare bør, men skal man bruke id.. Det er en grunn til at begge attributter finnes. Lenke til kommentar
BennyXNO Skrevet 20. januar 2009 Del Skrevet 20. januar 2009 (endret) Jesper, du har helt rett. Men jeg anbefaler dog å bruke class i stedenfor id'er når man er inne i contentpages eller userkontroller. Endret 20. januar 2009 av BennyXNO Lenke til kommentar
BennyXNO Skrevet 20. januar 2009 Del Skrevet 20. januar 2009 (endret) Fordi du ikke har kontroll over hvilken id'er asp.net genererer, noe som gjør at hvis du bruker en css-fil, så kan du ikke være garantert på at du bruker rett id. Men dette er personlig smak og min anbefaling. Endret 20. januar 2009 av BennyXNO Lenke til kommentar
Jesper Karsrud Skrevet 20. januar 2009 Del Skrevet 20. januar 2009 Jeg har enda til gode å se noe annet enn ctl00_ prefix foran ider på elementer med runar="server", og selv om det er litt irriterende, vil ikke idene forandre seg fra gang til gang. Dog er detulig jeg tar feil her så klart, men hvis microsoft er så korttenkte at de forandrer id-prefix fra gang til gang ved runtime kan man bare droppe hele .NET. Lenke til kommentar
Arve Systad Skrevet 14. februar 2009 Del Skrevet 14. februar 2009 Trur IDen blir som den er. Evt går det jo an å ta en titt på ASP.NET MVC for å få 100% kontroll på output-kode Lenke til kommentar
Jesper Karsrud Skrevet 16. februar 2009 Del Skrevet 16. februar 2009 Har også funnet ut at du kan bruke <%# element.clientID %> i javascript for å hente ut ID til elementet, hvis ikke får man bare kjøre kode én gang før man begynner å kode javascript Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå