Hejsan, <code> Fantastiskt bra. Det här är precis vad jag är ute efter. Det blir i VBSätta egenskaper till kontroller
Jag vill loopa genom alla kontroller (labels, textboxes etc) på en sida.
De kontroller som har egenskapen .text skall få denna egenskap = kontrollens ID.
Om jag i förväg vet vilka kontroller som finns på en sida så kan jag göra det manuellt och per kontroll.
Exempel:
lbHeader.Text = "lbHeader"
Nu vill jag göra det genom en For each... Next som är generell för vilken sida som jag än placerar den på.
Kanske kan någon hjälpa mig med syntaxen?
Mvh,
Johan NilssonSv: Sätta egenskaper till kontroller
private void Page_Load(object sender, System.EventArgs e)
{
LoopThruControls(Page.Controls);
}
private void LoopThruControls(ControlCollection cc)
{
foreach(Control c in cc)
{
switch(c.GetType().ToString())
{
case "System.Web.UI.WebControls.Button" : ((Button)c).Text = c.UniqueID; break;
case "System.Web.UI.WebControls.CheckBox" : ((CheckBox)c).Text = c.UniqueID; break;
case "System.Web.UI.WebControls.HyperLink" : ((HyperLink)c).Text = c.UniqueID; break;
case "System.Web.UI.WebControls.Label" : ((Label)c).Text = c.UniqueID; break;
case "System.Web.UI.WebControls.LinkButton" : ((LinkButton)c).Text = c.UniqueID; break;
case "System.Web.UI.WebControls.TextBox" : ((TextBox)c).Text = c.UniqueID; break;
default : break;
}
if(c.HasControls())
{
LoopThruControls(c.Controls);
}
}
}
</code>Denna loopar igenom alla kontroller och kollar om den aktuella kontrollen är av en av de som har propertyn Text (finns några till). Är dock själv lite osäker på tillvägagångsättet att se om den aktuella controllen är av en viss typ. Någon som har ett bättre sätt.Sv: Sätta egenskaper till kontroller
Det enda jag inte riktigt förstår är:
... ((Button)c).Text = c.UniqueID
Jag försöker översätta koden till Vb men raden ovan får jag ingen fason på.
Några idéer?
/JohanSv: Sätta egenskaper till kontroller
ctype(c, kontrolltyp).egenskap/metod
t ex:
ctype(c, TextBox).text = "Hejsan"