Toon posts:

[ASP.NET] UserControl reference probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Een willekeurige aspx page bevat een aantal user controls. Een van deze user controls is heeft een waarde nodig die in een andere user control wordt "uitgerekend".

zo heb ik een User control met een aantal dropdownlisten gevuld met gegevens uit de database. De andere user control maak gebruik van de bovengenoemde user control. Deze user control bevatten een aantal DataGrids. Deze worden gevuld met behulp van de SelectedItem.Value waarde van de usercontrol met de dropdownlist.

Als eerst heb ik een Controle Reference toegevoegd aan de usercontrol met de datagrids

code:
1
 <%@ Reference Control="UserControl/DropDownlistControl.ascx" %>


vervolgens heb de volgende source code toegevoegd in de code behind file van de user control met datagrids in de Page_load method:

code:
1
objDropDownListControl = (SwitchRolSwitchWebsiteControl)Page.LoadControl("UserControl/DropDownListControl.ascx");


in dezelfde code behind file heb ik in de BindData() (deze wordt ook aangeroepen in de page_load method) method het volgende source code toegevoegd:

code:
1
2
3
4
5
6
7
8
9
10
SqlCommand Command1 = new SqlCommand("csp_Info",conn);
            Command1.CommandType=CommandType.StoredProcedure;
            Command1.Parameters.Add("@Name",objTicket.Ticket.Name);
[b]Command1.Parameters.Add("@WebSite_nr",objDropDownListControl .DropDownList1.SelectedItem.Value);[b]
    
            conn.Open();
            SqlDataReader reader = Command1.ExecuteReader();
            DataGrid1.DataSource=reader;
            DataGrid1.DataBind();
            reader.Close();


Er is een property aanwezig om de DropDownList Op te halen. deze is in de user control met de dropdownlist geplaast. De property ziet er als volgt uit:

code:
1
2
3
4
public System.Web.UI.WebControls.DropDownList DropDownList1
        {
            get{return this.ddldropdownlist;}
        }



Nogmaals het bovenstaande user controls worden door 1 dezelfde aspx page gebruikt.

Als ik het bovenstaande wil runnen krijg ik een foutmelding (om precies te zijn een null reference exception). Er is namelijk geen referentie met objDropDownListControl .

Wat doe ik hier verkeerd? Hopelijk kunnen jullie mij helpen. (wellicht is dit een noob vraag. mijn excusses hiervoor).

[ Voor 3% gewijzigd door Verwijderd op 06-12-2005 14:52 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:33
Mja, ik vind dat jouw user control A helemaal geen weet zou mogen hebben van user control B.

Een user control staat op een pagina, en het is de pagina die de communicatie tussen de 2 controls moet doen, niet de usercontrols zelf.

Nu heb je een dependency tussen die 2 user-controls; maw, de ene kan niet meer zonder de andere. Dus, wat is het nut dan dat je 2 aparte usercontrols hebt ?
Ofwel maak je dus 1 usercontrol, ofwel zorg je ervoor dat die 2 usercontrols geen weet van elkaar hebben.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op dinsdag 06 december 2005 @ 14:54:
Mja, ik vind dat jouw user control A helemaal geen weet zou mogen hebben van user control B.

Een user control staat op een pagina, en het is de pagina die de communicatie tussen de 2 controls moet doen, niet de usercontrols zelf.

Nu heb je een dependency tussen die 2 user-controls; maw, de ene kan niet meer zonder de andere. Dus, wat is het nut dan dat je 2 aparte usercontrols hebt ?
Ofwel maak je dus 1 usercontrol, ofwel zorg je ervoor dat die 2 usercontrols geen weet van elkaar hebben.
Nou beide user controls zijn verantwoordelijk voor het zelf laden van gegevens (dus dropdownlist user control laadt de dropdownlisten). Dus in principe moet ik dit door de Pagina laten doen die gebruik maken van deze user control?

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:33
Ipv van je ene user-control iets te laten uitlezen uit een andere user-control, kan je toch je pagina die waarde uit user-control A laten uitlezen, en in je pagina die waarde doorgeven aan usercontrol B ?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op dinsdag 06 december 2005 @ 15:23:
Ipv van je ene user-control iets te laten uitlezen uit een andere user-control, kan je toch je pagina die waarde uit user-control A laten uitlezen, en in je pagina die waarde doorgeven aan usercontrol B ?
Ok Bedankt voor je uitleg. Ik heb hem nu volgens jou manier gedaan en het werkt perfect. Misschien moet ik een superclasse maken voor mijn user controls. Maar goed bedankt voor je uitleg