[asp.net] Parent Functions aanspreken vanuit een usercontrol

Pagina: 1
Acties:

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Mijn vraag is eigelijk of dat mogelijk is

Ik heb het volgende

een pagina, met hierop wat panels, met op een panel een tabel en op de ander een datagrid. Via dat datagrid vul ik die tabel (detail gegevens)

Op het panel met de detail gegevens staat ook een linkbutton die de mijn upload usercontrol zichtbaar maakt. Dan kan ik documenten uploaden. Maar zodra dat klaar is wil ik opnieuw het datagrid inlezen of de details ophalen.

Zo kun je zien dat er een nieuw document is toegevoegd, anders moet je handmattig herladen.

Ik heb zitten denken om die usercontrol gewoon een Response.Redirect te laten doen en zo de pagina opnieuw te laten lezen.

Maar misschien kan het ook op een andere manier.

code:
1
usercontrol.parent.id.tostring()


Dit geeft het panel waar de linkbutton op staat. Maar zo kan ik alleen functies aanspreken van een panel. Maar hoe kan ik nou een functie zoals BindDataGrid aanroepen.

Misschien is het helemaal niet mogelijk om losse functies aan te spreken, maar alleen functies van controls aan te spreken zoals visible, of enabled

Heeft iemand een idee?

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ok, ik heb al iets gevonden wat werkt. Maar ik vindt het nog geen goede oplossing

Het gaat als volgt.

De usercontrol heeft een functie setParent()
Deze geef ik het panel mee van de parentpagina (Panel1)
code:
1
usercontrol.setparent(panel1)


Usercontrol SetParent()
code:
1
2
3
Sub SetParent(parent as object)
  Session("parentobject") = parent
End Sub


In de usercontrol zet de setParent in het Session Object het object Panel1
(in de viewstate gaat niet, omdat er iets wordt gezegd over het niet Serializable zijn van een panel, attribuut toevoegen heeft geen effect)

Nadat een document geupload is, dan kijkt de usercontrol naar de ID van de parent en spreek een functie aan via het Page Object

dus zoiets als

In VB.Net
code:
1
2
3
4
5
6
Dim parentObject as Object = Session("parentobject")

Select ParentObject.Id.ToString
  Case "Panel1"
    ParentObject.Page.TestFunctie
End Select


EDIT: Dit schijnt toch niet goed te werken, het Panel object wordt niet goed doorgegeven. Ik kan hem niet opslaan in het session object.

Als ik de parent functie aanroep van de parent pagina in de functie setParent dan werkt het wel

maar zodra ik, het in een ander functie aanroep dan werkt het niet