hur gör man så att en usercontrol kan ändra egenskaper på huvudsidan där usercontrollen ligger? Det låter som du försöker använda usercontrol på fel sätt. En usercontrol skall INTE känna till sidan den ligger i. Säg att du har 2 Buttons i din UserControl, Visa och Döljlåta en usercontrol ändra egenskaper på huvudsidan
Jag skriver så i huvudsidan
sida heter test
public System.Web.UI.WebControls.Panel panelProdukt;
i usercontrol:en skriver jag
test ts = new test();
ts.panelProdukt.Visible=false;
Detta ger mig Object reference not set to an instance of an object. Är det inte sp man skall skriva?
Sv: låta en usercontrol ändra egenskaper på huvudsidan
Om du vill att en kontroll skall rapportera om förändring till sin sida skall detta istället ske med t.ex. händelser(eng. events). Då kan huvudsidan svara på händelsen genom att gömma produkpanelen.Sv: låta en usercontrol ändra egenskaper på huvudsidan
I UserControllens code behind:
Public hide As Boolean
Private Sub ButtonDolj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDolj.Click
hide = False
End Sub
Private Sub ButtonVisa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonVisa.Click
hide = True
End Sub
I testsidans code behind lägg till
Protected WithEvents WebUserControl11 As WebUserControl1 'Ange din Usercontrols id och typ här!
Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.PreRender
panelProdukt.Visible = WebUserControl11.hide
End Sub
OBS! Propertyn sätts i PreRender. Testsidans Page_Load körs innan UserControllens Page_Load
Hoppas det hjälper!
Jan