Avatar billede ha9953 Nybegynder
02. juli 2004 - 19:40 Der er 2 kommentarer og
1 løsning

Hente værdi fra en usercontrol til en anden

Jeg har følgende dropdown usercontrol:

brugergrupperolle.ascx:

<div class="textnormal">
    Vælg gruppe
    <asp:DropDownList ID="Drpgruppe" OnSelectedIndexChanged="drpgruppe_valgt" AutoPostBack="true" CssClass="boxtotal" runat="server"/>   
</div>


brugergrupperolle.ascx.vb:

Public Class Dropdown : Inherits UserControl

    Public _brugerrolleid as integer
    Public Property brugerrolleid() as integer
        Set (Byval value as integer)
            _brugerrolleid = value
        End Set
        Get
            Return     _brugerrolleid   
        End Get       
    End Property

    Public _gruppeid as integer
    Public Readonly Property gruppeid() as integer
        Get
            Return     _gruppeid   
        End Get               
    End Property


    Public udtryk as string
    Protected Drpgruppe As System.Web.UI.Webcontrols.dropdownlist
   
    Public Sub Page_Load(Source As Object, E as EventArgs)
        If not Page.IspostBack then
            Drpgruppe.Items.Add(New ListItem("test1", "1"))
            Drpgruppe.Items.Add(New ListItem("test2", "2"))           
            Drpgruppe.Items.Add(New ListItem("test3", "3"))                       
        End if
    End Sub

    Sub drpgruppe_valgt(Source As Object, E as EventArgs)
        _gruppeid = drpgruppe.selecteditem.value
    End sub   

End Class


Den henter jeg så ind i en anden usercontrol jeg har på følgende måde:

    Protected pandropdown As System.Web.UI.Webcontrols.placeholder
    Dim beholderdropdown as usercontrol   
   
    Public Sub Page_Load(Source As Object, E as EventArgs)
        beholderdropdown = loadControl("../dropdown/brugergrupperolle.ascx")
        pandropdown.controls.add(beholderdropdown)       

        response.write(beholderdropdown.GetType.GetProperty("gruppeid").GetValue(beholderdropdown, Nothing))
    end sub

Mit problem er at den bliver ved med at skrive 0 når jeg loader siden, det skulle jo gerne skrive 1?
Avatar billede ha9953 Nybegynder
03. juli 2004 - 01:03 #1
Jeg har prøvet at lave den som en komponent i stedet:

    Public Class brugergrupperolle : Inherits System.Web.UI.WebControls.DropDownList

        Public _brugerrolleid as integer
        Public Property brugerrolleid() as integer
            Set (Byval value as integer)
                _brugerrolleid = value
            End Set
            Get
                Return     _brugerrolleid   
            End Get       
        End Property

        Private Sub dropdown_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Init
            me.Items.Add(New ListItem(_brugerrolleid.tostring, _brugerrolleid.tostring))
        End Sub

    End Class

Hvis jeg så sætter property brugerrolleid til 6 i pageload viser den stadig 0:

    Protected Drpgruppe As efb.brugergrupperolle
   
    Public Sub Page_Load(Source As Object, E as EventArgs)
Drpgruppe.brugerrolleid=6

    End Sub
Avatar billede levels Nybegynder
04. juli 2004 - 19:16 #2
prøv at bruge response.write linien i  pre_render i stedet
Avatar billede ha9953 Nybegynder
05. juli 2004 - 18:33 #3
Lukker spørgsmåelt - intet kunne bruges - forsætter med en at lave en komponent i stedet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester