Avatar billede stinejh1980 Nybegynder
23. maj 2008 - 12:44 Der er 3 kommentarer og
1 løsning

Load Webcontrol Dynamisk

Jeg har en side hvor jeg fylder en dropdown dynamisk:

    Function FillDDLPage()
        MyCommand = New OleDbCommand
        MyDS = New DataSet
        MyDA = New OleDbDataAdapter

        MySQL = "Select * from ProgramDDL_Tbl Where ProgramID=70;"
        MyCommand.CommandText = MySQL
        MyCommand.Connection = MyConnection
        MyDA.SelectCommand = MyCommand
        Try
            MyDA.Fill(MyDS)
        Catch ex As Exception
            Lblmessage.Text = ex.ToString
            Lblmessage.Visible = True
            'Exit Sub
        End Try
        Try
            DDLPage.DataSource = MyDS
            DDLPage.DataValueField = "DDLValue"
            DDLPage.DataTextField = "DDLText"
            DDLPage.DataBind()
        Catch ex As Exception
            Lblmessage.Text = ex.ToString
            Lblmessage.Visible = True
            'Exit Sub
        End Try
        DDLPage.Items.Insert(0, "...Select...")
    End Function


Ud fra den valgte linie i denne dropdown vil jeg gerne loade en webcontrol.

Eksempel:

Bruger brugeren vælger ”User Groups” i min dropdown.
DDLPage.SelectedValue = User_Groups

Derefter skal der nogen lunde sket dette:

    Private Sub DDLPage_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DDLPage.SelectedIndexChanged

Display “DDLPage.SelectedValue”.ascx
    End Sub

Ergo skal den loade den webcontrol der hedder User_Groups.ascx ind på min side Page_AdminUsers.aspx v.h.a. min dropdown.

Indtil nu har jeg gjort det således:

<asp:DropDownList ID="DDLPage" runat="server" AutoPostBack="true">
<asp:ListItem Value="0">..Select Type..</asp:ListItem>
<asp:ListItem Value="Groups">User Groups</asp:ListItem>
<asp:ListItem Value="Access">User Access</asp:ListItem>
</asp:DropDownList>

    Private Sub DDLDisplay_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DDLDisplay.SelectedIndexChanged
        Select Case DDLDisplay.SelectedValue
            Case 0
                User_Access1.Visible = False
                User_Groups1.Visible = False
            Case "Groups"
                User_Access1.Visible = False
                User_Groups1.Visible = True
            Case "Access"
                User_Access1.Visible = True
                User_Groups1.Visible = False
        End Select
    End Sub
Avatar billede ieconfig Nybegynder
24. maj 2008 - 00:13 #1
UserControl ctrl = (UserControl)Page.LoadControl(DDLPage.SelectedValue + ".ascx");
panel1.Controls.Add(ctrl);
Avatar billede stinejh1980 Nybegynder
26. maj 2008 - 08:55 #2
Jeg har skrevet:

    Private Sub DDLPage_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DDLPage.SelectedIndexChanged
        Dim ctrl As UserControl = CType(Page.LoadControl((DDLPage.SelectedValue + ".ascx")), UserControl)
        PlaceHolder1.Controls.Add(ctrl)
        'Dim MyWebControl As New Control
        'MyWebControl = LoadControl("" & DDLPage.SelectedValue & ".ascx")
        'PlaceHolder1.Controls.Add(MyWebControl)
    End Sub

Men intet kommer frem.
Kun når jeg anvender funktionen i page load.
Avatar billede stinejh1980 Nybegynder
26. maj 2008 - 09:01 #3
Og selv der virker det ikke rigtigt.

Alle mine webcontrols har et datagrid, men med opslag i forskellige tabeller i min Db.
Når den loader en  nyt control loader den det nye datagrid, men med data fra det første load.

Jeg har op til 7 forskellige webcontrols der skal loades, men selvom det er det 7. load så viser den stadig data fra 1 load.
Avatar billede stinejh1980 Nybegynder
25. januar 2009 - 15:20 #4
Jeg lukker
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