webForumDet fria alternativet

Skicka objekt till ascx

.NET

3 svar · 378 visningar · startad av cyprys

Medlem sedan dec. 20003 563 inlägg
Frågan#1

Om man inkluderar en web user control med

Protected WithEvents pLogin As System.Web.UI.WebControls.PlaceHolder 

...

Dim _pLogin As Control = Page.LoadControl("sub1/_login.ascx")
pLogin.Controls.Add(_pLogin)

Finns det något sätt att låta ett objekt skapat i aspx-filen "ärvas" ner och användas i ascx-filen?

Medlem sedan sep. 20011 914 inlägg
#2
//_login.ascx.cs

public class _login : System.Web.UI.UserControl
{
   private object _myobject;

   public object MyObject
   {
      get{return _myobject;}
      set{myobject = value;}
   }

   private void Page_Load(object sender, System.EventArgs e)
   {
      if(!IsPostBack)
      {
         //Do things with MyObject
      }
   }
}
//.aspx.cs

public class grr : System.Web.UI.Page
{
   private void Page_Load(object sender, System.EventArgs e)
   {
      if(!IsPostBack)
      { 
         Bind();
      }
   }

   private void Bind()
   {
      [i]projektnamnet[/i].sub1._login uc = ([i]projektnamnet[/i].sub1._login)Page.LoadControl("sub1/_login.ascx");
      [b]uc.MyObject = new object();[/b]
      pLogin.Controls.Add(uc);
   }
}
Medlem sedan dec. 20003 563 inlägg
#3

Aha. Perfa!

Medlem sedan dec. 20003 563 inlägg
#4

*
Uppdaterat. Ett "_" var missat i property på ascx-sidan och allt funkar nu.
Såhär blev det i vb.net.
*

Jag lyckas inte smyga ifrån felmeddelanden tyvärr.

System.StackOverflowException

Själva objektet "data.info" är fyllt och klart på aspx-sidan.
Kommenterar jag bort adderingen av objectet (*) fungerar allt. Är det något vid konverteringen från C# till VB som jag missat?

aspx-filen

Sub fillInfo(ByVal id As Integer)
        Dim lObj As New data.info
        lObj.id = id
        lObj.getById()
        Dim _main As projekt.__lg = Page.LoadControl("sub1/_lg.ascx")
        _main.myObject = lObj ' [b](*)[/b]
        pMain.Controls.Add(_main)
End Sub

ascx-filen

Private _myobject As data.info

Public Property myObject() As data.info
        Get
            Return _myobject
        End Get
        Set(ByVal Value As data.info)
            _myObject = Value
        End Set
End Property
274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)