22. september 2004 - 16:57
Der er
21 kommentarer og 1 løsning
sætte cssclass på parent control
hvordan kan jeg får lov at sætte cssclass på "div0" når jeg trykker på btn0. <div id="div0" runat="server"> <asp:button id="btn0" runat="server" text="hej" /> </div> der jeg er nået til >>> Sub Css_Click(Sender As Object, E As EventArgs) Dim s As Button = CType(Sender, Button) s.Parent.???????????????????? End Sub
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
22. september 2004 - 16:58
#1
s.CssClass = "dinklasse"
22. september 2004 - 16:59
#2
ja det var jo flot... sorry der :o)
22. september 2004 - 17:02
#3
hvorfor har du en div i koden, som kører runat=server... kan du ikke bruge f.eks. et Panel istedet ?
22. september 2004 - 17:04
#4
jeg har det fordi det er det jeg har valgt at bruge.. :) s.Parent.CssClass Virker ikke Da Control i sig selv ikke har en property der hedder cssclass :(
22. september 2004 - 17:06
#5
Så kan du tilgå den programmatisk som et panel der "ud af posen" giver dig en CssClass property.... Så ser det så pænt ud det hele :o) (og et panel renderes som en <div>)
22. september 2004 - 17:10
#6
F.eks. sådan her : using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace EXP2 { public class WebForm1 : System.Web.UI.Page { protected HtmlForm Form1; protected Panel panel; protected Button btn; private void Page_Load(object sender, System.EventArgs e) { panel = new Panel(); btn = new Button(); btn.Click += new EventHandler(btn_Click); panel.Controls.Add(btn); Form1.Controls.Add(panel); } override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } private void btn_Click(object sender, EventArgs e) { this.panel.CssClass = "dinKlasse"; } } }
22. september 2004 - 17:13
#7
Det giver dig nedenstående output i browseren - efter du har trykket på knappen : <div class="dinKlasse"> <input type="submit" name="_ctl1" value="" /> </div> Er det ikke ok ? mvh
22. september 2004 - 17:23
#8
Men bortset fra det kan du selvfølgelig godt skrive til en serverside <div>.
du kan deklerere den i koden som en
protected HtmlGenericControl someDiv;
og skrive din class ind med
someDiv.Attributes.Add("class","someClass");
hvis du ikke vil have deklerationen, kan du også bare typecaste parent.
((HtmlGenericControl)s).Attributes.Add("class","someClass");
skal jeg smide det herud i på VB'sk ?
(ellers er der link til oversætter her :
http://www.developerfusion.com/utilities/convertcsharptovb.aspx )
mvh
22. september 2004 - 17:43
#9
hmm....kan sg ik få det til at funge. jeg er fast besluttet på at beholde mine div tags. kan du hjælpe med at få inkorporeret dine eksempler i mit <div id="div0" runat="server"> <asp:button id="btn0" runat="server" text="hej" /> </div> der jeg er nået til >>> Sub Css_Click(Sender As Object, E As EventArgs) Dim s As Button = CType(Sender, Button) s.Parent.???????????????????? End Sub
22. september 2004 - 17:48
#10
jeps... prøver lige den onlineoversætter der :o) CType(s.Parent, HtmlGenericControl).Attributes.Add("class", "someClass") hvordan går det med den ?
22. september 2004 - 18:31
#11
no....men dine paneler virker perfekt, og de har hermed erstattet mine divs....suppercool tnx vil du have points ?
22. september 2004 - 18:39
#12
nå men når enden er go' :o) hvad er det du ikke kunne få til at virke ? (der er ikke noget af det jeg har sendt der ikke virker hos mig). mvh
22. september 2004 - 19:12
#13
denne virker Sub Css_Click(Sender As Object, E As EventArgs) Dim s As Button = CType(Sender, Button) CType(s.Parent, Control).CssClass = "class" End Sub
22. september 2004 - 19:16
#14
ok... jeg har nu heller ikke noget ballade med at caste en "classic" div til en HtmlGenericControl, men... når bare det dutter :o)
22. september 2004 - 19:37
#15
så ville du gøre sådan her ik ? Sub Css_Click(Sender As Object, E As EventArgs) Dim s As Button = CType(Sender, Button) CType(s.Parent, HtmlGenericControl).Attributes.Add("class", "class_on") End Sub
22. september 2004 - 19:46
#16
Jeps - det virker fint hos mig (i en C#-pendant), men hvis du "bare" har et panel, med nogle andre kontroller på, ville jeg nok stadig bare bruge noget i stil med det jeg skrev 17:10:38.... Der er ingen behov for at typecaste eller noget - det er bare lige ud af landevejen. Bare smid mere kode, hvis der er andet der driller. mvh :o)
22. september 2004 - 20:13
#17
hehe....troede blank på det du skrev Kommentar: snepnet, 22/09-2004 17:13:55 >>> Det giver dig nedenstående output i browseren - efter du har trykket på knappen : <div class="dinKlasse"> <input type="submit" name="_ctl1" value="" /> </div> __________________________________________________ dette outputter ikke divs men tables :( kan du tilfældigvis huske hvilken kontrol der udskriver divs ?
22. september 2004 - 20:21
#18
Jamen den kode jeg skrev i 17:10:38 genererer også det output der står i 17:13:55 (altså pakket ind i diverse headers mv). Denne kode : <div class="dinKlasse"> <input type="submit" name="_ctl1" value="" /> </div> Skal du ikke skrive noget sted... Det er resultatet at du sætter et Panel ind programmatisk ved kode som dette : panel = new Panel(); btn = new Button(); btn.Click += new EventHandler(btn_Click); panel.Controls.Add(btn); Form1.Controls.Add(panel); Panelet renderes som en div, og en Button renderes som <input type="submit" ... Hvad er det for noget kode du har fået tabeller ud af ? Men... noget helt andet. Hvilket udviklingsmiljø bruger du ? (det er mere, hvis jeg sender flere eksempler til dig). mvh
22. september 2004 - 20:22
#19
og lige det sidste.... hvilken browser bruger du ? (visse serverkontroller kan renderes forskelligt afhængig af hvilken browser du bruger).
22. september 2004 - 20:34
#20
tja...det er rigtig nok.... mozilla, tables ie, div
22. september 2004 - 20:51
#21
jep... det er sikkert rigtigt. det er noget der står i machine.config, under browsercaps (som for øvrigt ikke vedligeholdes af microsoft så vidt jeg ved).
22. september 2004 - 21:12
#22
kigger lige på lidt det....tnx
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.