Toon posts:

[ASP.NET / VB.NET] Usercontrol laden vanuit dll

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Volgens dit artikel probeer ik een usercontrol te laden uit een apart webapplicatie.
Het is wel een klein beetje anders, omdat ik het wil laden via Loadcontrol. Maar mijn probleem is:

Ik heb mijn usercontrols verplaatst naar een lege webappcicatie (Library), die heb ik gecompiled en de dll in de bin folder gezet van mijn webapplicatie. Ik heb vervolgens een reference gemaakt naar de dll en een virtual path in IIS gemaakt die naar de Library wijst. Als ik dan een UserControl wil toevoegen doe ik dit:

Dim ctrlPage as Library.Page
ctrlPage = LoadControl("Librarypath\Page.ascx")
ctrlPage.pid = PageId
Panel.Controls.clear()
Panel.Controls.Add(ctrlPage)

De class Page is een public class.
Librarypath is dan in dit geval het virtual path. Het aanmaken van het object gaat prima en de property pid zetten gaat ook goed. Alleen bij Panel.Controls.Add(ctrlPage) geeft ie de volgende foutmelding:

Object reference not set to an instance or an object.

Ik had eerst mijn usercontrols allemaal in een project en toen werkte het prima

Weet iemand hier misschien een oplossing hiervoor?

alvast bedankt

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 07:31

gorgi_19

Kruimeltjes zijn weer op :9

Dim ctrlPage as Library.Page = new Library.Page

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ik krijg nog steeds dezelfde foutmelding.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Op wlke regel krijg je deze foutmelding en wat is de stacktrace?

Verwijderd

Topicstarter
Ik krijg de foutmelding op de regel:

Panel.controls.Add(ctrlPage).

Complete foutmelding:


Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:


Line 217: ctrlPage.pid = PageId
Line 218: Panel.Controls.Clear()
Line 219: Panel.Controls.Add(ctrlPage)
Line 220: End Sub

Stack Trace:


[NullReferenceException: Object reference not set to an instance of an object.]
Library.Functions.IsItemInSession(String ItemName)
Library.Functions.GetItemFromSession(String ItemName)
Library.Page.InitLanguage()
Library.Page.Page_Init(Object sender, EventArgs e)
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.Control.OnInit(EventArgs e)
System.Web.UI.UserControl.OnInit(EventArgs e)
System.Web.UI.Control.InitRecursive(Control namingContainer)
System.Web.UI.Control.AddedControl(Control control, Int32 index)
System.Web.UI.ControlCollection.Add(Control child)
Website.DefaultPage.LoadPage(Int32 PageId) in c:\inetpub\wwwroot\Website\default.aspx.vb:219
Website.DefaultPage.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\Website\default.aspx.vb:130
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()

Verwijderd

Topicstarter
|:( |:( |:(

Ik had niet goed genoeg door gedebugged. Na wat meer breakpoints gezet te hebben kwam ik achter de fout, het was een variabele die nog niet gezet was. Ik wist ook niet dat je door een dll kan debuggen, handig.

Maar bedankt voor de moeite.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Je kunt door een DLL debuggen als deze ook als DEBUG is gecompiled. Als je een release build doet is dit niet meer mogelijk.
Pagina: 1