[ASP.NET] Breedte van een label bepalen

Pagina: 1
Acties:

  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
Ik wil in ASP.NET (C#) dynamisch een rood sterretje achter een label plaatsen.

Dit is bijna gelukt, maar bij het bepalen van de Left positie (left van label + breedte van label) blijkt het dat de Width property van een label altijd ingesteld staat op 0.0.
Daaruit maak ik dus op dat de breedte van een label dynamisch wordt bepaald... Er wordt geen gebruik gemaakt van een monospaced lettertype, dus een vast aantal pixels * het aantal characters gaat ook niet door...

Weet iemand een manier om de breedte van het label toch te bepalen?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

TeknoGecko schreef op 30 September 2003 @ 17:22:
Ik wil in ASP.NET (C#) dynamisch een rood sterretje achter een label plaatsen.

Dit is bijna gelukt, maar bij het bepalen van de Left positie (left van label + breedte van label) blijkt het dat de Width property van een label altijd ingesteld staat op 0.0.
Daaruit maak ik dus op dat de breedte van een label dynamisch wordt bepaald... Er wordt geen gebruik gemaakt van een monospaced lettertype, dus een vast aantal pixels * het aantal characters gaat ook niet door...

Weet iemand een manier om de breedte van het label toch te bepalen?
Waarom wil je de breedte weten?
label.text = label.text & "*"
werkt toch ook?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

is het niet veel handiger om een span achter de label te zetten en het geheel in een div ? Vooral aangezien de breedte van het label waarschijnlijk per client (browser) gaat vershillen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 30 September 2003 @ 17:26:
is het niet veel handiger om een span achter de label te zetten en het geheel in een div ? Vooral aangezien de breedte van het label waarschijnlijk per client (browser) gaat vershillen.
Visual Basic .NET:
1
2
Dim __l As Label = New Label
__l.Style.Add("width", "12px")

Ik vraag me af of dit veel verschilt per browser. :)
Maar daar moeten we iemand uit /13 heel lief voor aankijken.. :P

* gorgi_19 hoopt stiekem op een verdwaalde crisp. :P

edit:
Nadeel alleen bij bovenstaande methodiek is dat je je web.config moet aanpassen om die ASP.Net bug van "inferior browsers" op te lossen. :(

[ Voor 37% gewijzigd door gorgi_19 op 30-09-2003 17:46 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Waarom wil je een rood sterretje achter een label plaatsen?

* whoami heeft hier een vermoeden dat je wil aangeven of een veld ingevuld is ofzo..... Als dat het geval is kan je misschien eens naar Validators kijken.

https://fgheysels.github.io/


  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
whoami schreef op 30 September 2003 @ 18:55:
Waarom wil je een rood sterretje achter een label plaatsen?

* whoami heeft hier een vermoeden dat je wil aangeven of een veld ingevuld is ofzo..... Als dat het geval is kan je misschien eens naar Validators kijken.
Klopt helemaal... ik heb ook niet gezegt dat dat sterretje een label was... ;)

Maargoed... opzich zou ik voor de statische pagina's de sterretjes gewoon al op mijn formulier kunnen slepen, maar we hebben 1 volledig dynamisch opgebouwd formulier waarbij dat dus een probleem wordt...

Ik ben dus nogsteeds opzoek naar een oplossing om de breedte te bepalen...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

TeknoGecko schreef op 01 oktober 2003 @ 10:28:
[...]


Klopt helemaal... ik heb ook niet gezegt dat dat sterretje een label was... ;)

Maargoed... opzich zou ik voor de statische pagina's de sterretjes gewoon al op mijn formulier kunnen slepen, maar we hebben 1 volledig dynamisch opgebouwd formulier waarbij dat dus een probleem wordt...

Ik ben dus nogsteeds opzoek naar een oplossing om de breedte te bepalen...
Antwoord: niet. breedte wordt clientside bepaald; heb je op de server geen weet van en iedere browser parsed het toch anders.

Optie: Maak een tabel; textbox kolom 1, validator kolom 2.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

* crisp is verdwaald 8)7

wat is een label? is dat gewoon een text-input?
Die dingen zijn al inline, dus als je gewoon na die tag een '*' uitpoept zou die er achter moeten komen te staan.
Een input mbv style-attributen een vaste breedte geven werkt ook in de meeste moderne browsers (eigenlijk alleen in NS4 niet). Je form mbv tabellen opmaken wordt inderdaad ook wel veel gedaan ivm uitlijning.

Intentionally left blank


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

crisp schreef op 01 October 2003 @ 10:45:
* crisp is verdwaald 8)7

wat is een label? is dat gewoon een text-input?
Die dingen zijn al inline, dus als je gewoon na die tag een '*' uitpoept zou die er achter moeten komen te staan.
Een input mbv style-attributen een vaste breedte geven werkt ook in de meeste moderne browsers (eigenlijk alleen in NS4 niet). Je form mbv tabellen opmaken wordt inderdaad ook wel veel gedaan ivm uitlijning.
label = <span></span>
tenzij een browser dit niet ondersteunt, dan gaat ASP.Net er iets anders van bakken.. :P

offtopic:
/me vindt het wel gezellig met een verdwaalde crisp.. :P kopje thee? :+

[ Voor 11% gewijzigd door gorgi_19 op 01-10-2003 10:48 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

gorgi_19 schreef op 01 October 2003 @ 10:47:
[...]

label =
tenzij een browser dit niet ondersteunt, dan gaat ASP.Net er iets anders van bakken.. :P

offtopic:
/me vindt het wel gezellig met een verdwaalde crisp.. :P kopje thee? :+
Een span is ook een inline element (en je hoeft niet bang te zijn dat een browser dat niet ondersteund aangezien het gewoon onderdeel is van de HTML4 specificaties), dus een volgend label zou er gewoon achter moeten komen (tenzij ASP.NET een linebreak genereerd).
Een span kan je echter geen width geven want afmetingen zijn voorbehouden aan blocklevel-elementen (zoals bv een div) - hoewel IE daar nog wel eens van wil afwijken.

offtopic:
/me heeft liever koffie met een koekje :+

[ Voor 12% gewijzigd door crisp op 01-10-2003 10:56 ]

Intentionally left blank


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

crisp schreef op 01 oktober 2003 @ 10:55:
[...]

Een span is ook een inline element (en je hoeft niet bang te zijn dat een browser dat niet ondersteund aangezien het gewoon onderdeel is van de HTML4 specificaties), dus een volgend label zou er gewoon achter moeten komen (tenzij ASP.NET een linebreak genereerd)
Ik had misschien iets duidelijker moeten zijn... Als asp.net vindt dat het een browser is die HTML4.0 ondersteunt of niet.
D'r zit namelijk standaard een bug in ASP.Net, waardoor Opera 6+, Mozilla en Netscape 6+ allemaal browsers zijn die niet HTML4 ondersteunen. :P
Ze hadden het opgelost aan het einde van 1.0; maar in 1.1 zit deze weer. Gelukkig is deze vrij eenvoudig in de web.config op te lossen.

Hetzelfde leuke geintje heeft MS uitgevoerd met de validators; Deze zijn IE only.. :P Gelukkig zijn ze daar zelf ook al achter gekomen, en hebben ze aparte DOM validators gemaakt.

Beide problemen hebben me alleen wel een dag gekost voor ik het goed door had...
offtopic:
/me heeft liever koffie met een koekje :+
offtopic:
/me schenkt een kopje koffie dan in....

[ Voor 16% gewijzigd door gorgi_19 op 01-10-2003 11:00 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1