javascript

Tags:    asp.net javascript

Hej udviklere.

Jeg prøver at få width på en celle i en tabel i en asp.net side jeg har lavet, For at ændre størrelsen på en textBox. Ved brug af javascript.

Men det fungere ikke rigtig for mig.
Cellen er inde i en tableHeader så ID,en figurerer kun en gang.

Jeg har prøvet følgende.
Fold kodeboks ind/udJScript kode 


Men jeg får en fejl hvor den siger at elementets width er null.
Men hvis jeg loader siden i Explorer, trykker f12 for at se source og går under elementet (layout).

Så kan jeg se at
offset = 3px
Margin = 0px
Border = 1px
Padding = 1px
width = 91.64px
heigth = 18.4px

Så jeg forstår ikke jeg får en width er null fejl-besked. Men er dette fordi jeg prøver at "gribe / hente" værdien på en forkert måde?

Tak på forhånd.



9 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Det behøver du jo egentlig ikke javascript til:

Fold kodeboks ind/udHTML kode 




Jeg forstår ikke hvorfor du vil bruge javascript til at ændre størrelsen på en celle. Kan du ikke forklare hvad formålet er, i forhold til at bruge css mulighederne eller evt. ændre det ved prerender event?



brug style.width = "yyypx";



Jeg forstår ikke hvorfor du vil bruge javascript til at ændre størrelsen på en celle textbox.


Ved ikke hvordan jeg ellers kunne ændre størrelsen på tekst boksen baseret på en celles.width.

Kan du ikke forklare hvad formålet er, i forhold til at bruge css


Formålet er at jeg godt kunne tænke mig at tekst boksen og cellen har samme størrelse. Og jeg har lavet min tabel ved at sige tabel.width = 100% hvorefter jeg har tilføjet tabellens celler. Men størrelsen på cellerne / tabel kan jo variere, alt efter browser vinduets størrelse.





Indlæg senest redigeret d. 03.05.2012 11:30 af Bruger #16700
Det behøver du jo egentlig ikke javascript til:

Fold kodeboks ind/udHTML kode 


Hvordan løser det mit problem at det er en tekstbokst jeg ville sætte width værdien for? I dont see it :)

Men er der nogle der kan hjælpe til hvordan jeg kan få width på en celle.



Det løser dit problem i forhold til følgende udsagn:

Ved ikke hvordan jeg ellers kunne ændre størrelsen på tekst boksen baseret på en celles.width.


og

Formålet er at jeg godt kunne tænke mig at tekst boksen og cellen har samme størrelse.




Indlæg senest redigeret d. 03.05.2012 12:49 af Bruger #10216
Det løser dit problem i forhold til følgende udsagn:

Ved ikke hvordan jeg ellers kunne ændre størrelsen på tekst boksen baseret på en celles.width.


og

Formålet er at jeg godt kunne tænke mig at tekst boksen og cellen har samme størrelse.


Jah men det kræver jeg kommer mine felter med ind i tabellen.
Og da jeg i øjeblikket laver mine tabeller i C# codebehind koden, så kan jeg ikke rigtig gennemskue hvordan jeg skulle gøre det.

Så taget fra mit eksempel i #1 er der nogen der kan vise mig hvordan jeg ville kunne tage width fra en celle og tilføje den til en tekstboks.



Indlæg senest redigeret d. 03.05.2012 13:03 af Bruger #16700
fyi: så bør:

document.getElementById('TextBox_id').width = tableWidthCell1;

være:

document.getElementById('<%#TextBoxID.ClientID%>').style.width = tableWidthCell1;

husk page.databind()

/J





Indlæg senest redigeret d. 03.05.2012 13:27 af Bruger #5789
Jah jeg søger jo rundt på nettet for at prøve at finde en løsning og få ideer.

Jeg endte også på noget databind() som du er inde på jokke. Men det skal jeg læse noget mere om får jeg forstår hvad det er det gør.

Så spøglsmålet er nu.

Er der nogle der ved hvordan man kan få width værdien ud af et table objekt, da jeg opretter mine tabeller i C# koden.

Hvor jeg opretter min headertabel som sådan
Fold kodeboks ind/udCSharp kode 


Width bliver sat til 100% af browser vinduet for tabellen. Men cellerne får en anden width værdi som er i pixels. ASP.NET processen må jo på et tidspunkt hente browser vinduets størrelse og derefter give cellerne en width værdi (har 12 celler i hver række i tabellen). Men ved ikke lige hvornår det er den gør det.

Hvis dette ikke er muligt, er det muligt med javascript at hente width værdien for de forskellige celler. Efter C# har tilføjet overstående tabel til siden men inden den bliver vist for brugeren.



Indlæg senest redigeret d. 03.05.2012 14:15 af Bruger #16700
t