Hej! Det är inte ett direkt svar på din fråga men jag ser det som otroligt mycket enklare att hantera en tabell istället för en massa DIV-taggar. Mindre kod och så behöver du ej hålla reda på höjden utan kan rendera olika kontroller inom den tabellen. Jag vet ju inte omfattningen för projektet men ser det som en lämpligare utväg. Hej! Det finns ett sätt som använder JavaScript. Det är en del av funktionen som Paul Bellows skapat. Nu är det inte exakt vad du vill utana bara en del av hans script men det är väldigt lättläst kod och bra kommenterat så du kanske kan ta dig igenom det för att plocka ut dina önskade höjder! Det är nog inga större problem att läsa höjden på diven på klientsidan efter att Jag funderade på om det kan räcka att mäta höjden på samtliga tecken som du matar in i kontrollen m.h.a. MeasureString-funktionen? Den mäter alltså höjden och bredden på ett tecken. Varför skall du "placera" din div? Det borde vara mycket smidigare att bara "släppa ned" den nedanför föregående div. Frågan är fel ;-). Tack för alla svar! Har varit borta några dagar och har inte Varför skulle inte flow layout kunna användas när du skall presentera e bokad tid? <b>Om jag inte vet vad höjden blir så kanske den inte är representativ för hur mycket tid Måste du skicka allt som HTML?Höjd på div?
Lägger till en div med kod. Läser in text från en databas som visas i diven(en länk). Beroende på hur mycket text som lagts in blir diven olika hög. Innan sidan visas vill jag vet hur hög diven blir så att jag vet var jag skall placera nästa div (under). Men hur får jag reda på höjden på diven innan sidan har renderats.
Jag gör typ:
div.Style.Add("background-color","Silver");
div.Style.Add("border-style","Solid");
div.Add("border-width","1");
div.Style.Add("height",myHeight.ToString()+"px");//Är minimihöjden
div.Style.Add("width",kolumnbredd.ToString()+"px");
div.Style.Add("POSITION","absolute");
div.Style.Add("LEFT",pe[p].left.ToString()+"px");
div.Attributes.Add("Align","center");
div.Attributes.Add("Valign","center");
div.Attributes.Add("z-index","1");
div.Style.Add("TOP",myTop.ToString() + "px");
this.Page.Controls.Add(div);
System.Web.UI.WebControls.HyperLink hl = new HyperLink();
hl.ID = "ID_" + myDataReader.GetInt32(4).ToString();
//Höjden beror på hur mycket text det är...
hl.Text = myDataReader.GetString(6).ToString();
hl.NavigateUrl = "ArbetsKalender.aspx?TimeObj=" + myDataReader.GetInt32(8).ToString();
hl.CssClass = "tidsobjekt";
hl.Font.Bold = true;
hl.Style.Add("Align","center");
div.Controls.Add(hl);
HÄR VILL JAG VETA HUR HÖG DIVEN ÄR!
Tacksam på förslag hur jag löser det hela! Sv: Höjd på div?
Sv:Höjd på div?
Som i princip alla 'celler' är olika stora samt att alla 'kolumner' innehåller allt från 3 till 60 celler så har det känts mycket lättare att jobba med div´s än en tabell. Samt att jag har tänkt använda kunna ha drag and drop av tidsobjekt (flytta till annan kolumn) vid senare versioner.
Men skulle du tycka att det finns en bättre lösning är jag intresserad.
MVH
PeterSv: Höjd på div?
Spana in han sida:
http://www.paulbellows.com/getsmart/balance_columns/
MVH JonasSv:Höjd på div?
sidan har skickats iväg från servern. Men jag skulle vilja veta höjden innan jag
lägger till nästa div. När sidan är skickad är det redan försent.
MVH
PeterSv: Höjd på div?
Det kanske är något att jobba kring?Sv: Höjd på div?
<code>
<style type="text/css">
#container {
width: 20em;
}
#container div {
margin-bottom: 2em;
}
</style>
<div id="container">
<div>
...
</div>
<div>
...
</div>
</div>
</code>Sv: Höjd på div?
Lösningen ligger i att INTE ha position:absolute! Om du kan lite css så behöver du inte bry dig om höjden utan bara låter nästa div komma under. Sv: Höjd på div?
kunna reflektera era synpunkter för än nu. Konstaterar att det
inte finns något exakt och enkelt sätt att får reda på den divs
höjd innan sidan har skickats ut från servern. Om jag vill veta
hur hög den div blir för att veta om jag skall ändra 'upplösning'
(automatiskt) så kan jag ju inte heller använda flow layout.
Det är heller inget alternativ som höjden på diven skall
representera en bokad tid. Hur jag skall göra vet jag inte.
Men nu vet jag i allafall förutsättningarna.
Tack!Sv:Höjd på div?
Genom att vi har fått andra uppgifter ändras plötsligt förutsättningarna. Absolutpositionering kan vara en bra idé, men inte att försöka bygga den på divars storlek på skärmen.Sv: Höjd på div?
>Varför skulle inte flow layout kunna användas när du skall presentera e bokad tid?
Om jag inte vet vad höjden blir så kanske den inte är representativ för hur mycket tid
som bokas (spelar ingen roll om det absolut eller flow om jag inte vet höjden).
>Genom att vi har fått andra uppgifter ändras plötsligt förutsättningarna. Absolutpositionering kan vara >en bra idé, men inte att försöka bygga den på divars storlek på skärmen.
Förstår inte vad du menar med att förutsättningarna ändrats. Kan inte se att jag ändrat några förutsättningar. Jag har i grund och botten bara vilja veta om man kan veta hur hög en div blir innan man skickar den till klienten. Detta oavsett om det är absolut eller flow layout. Men hur som helst tycker jag att svaren har varit givande. Och som du säkert ser på frågan är jag en nybörjare på området. Men de svar som jag fått kan jag nu gå vidare och fundera hur jag skall göra.
MVH
PeterSv:Höjd på div?
som bokas</b>
Kan du inte sätta höjden till den bokade tiden, t.ex. 60px för 60 min?
Exempel:
<code>
<div style="position: relative; width: 200px;">
<div style="position: absolute; width: 100%; top: 60px; height: 120px; background: #fcc;">
Möte 9:00 - 11:00
</div>
<div style="position: absolute; width: 100%; top: 210px; height: 30px; background: #ffc;">
Lunch 11:30 - 12:00
</div>
<div style="position: absolute; width: 100%; top: 300px; height: 90px; background: #cfc;">
Möte 13:00 - 14:30
</div>
</div>
</code>Sv: Höjd på div?
Annars kan du ju generera en bild på servern som sen skickas till klienten.
Då får du ju exakta positioner (pixels).
Om man sen ska kunna klicka på en bokning kan du väl fixa det med en klickbar bild med flera zoner. Tror det kallas "map"