webForumDet fria alternativet

Dynamisk UserControl

1 svar · 263 visningar · startad av StefanBergfeldt

StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#1

Jag har byggt en UserControl som ska hantera redigeringen av användare. Den tar emot userID, som den använder för att hämta rätt användare.

När jag klickar på knappen "Ny användare" så skapas såklart en ny användare, därefter vill jag läsa in min UserControl på sidan, med det nya ID't på användaren.

Det jag har gjort nu är att jag har lagt ut min UserControl på sidan (så vill jag egentligen inte ha det) och i funktionen CreateUser så sätter jag myusercontrol.userID = myUser.ID

Jag VET att myUser.ID har ett korrekt värde, för jag sätter det i en label också, men när jag i min UserControl skriver ut värdet på userID så är det 0 och därför fungerar det inte.

Vad gör jag för fel, och hur gör jag för att i programkoden lägga till en UserControl?

Förresten, jag leker i ASP.NET 2.0

Min UserControl:

<%@ Control Language="VB" ClassName="editUser" %>

<script runat="server">
    Private _userID As Integer
    Public Property userID() As Integer
        Get
            Return _userID
        End Get
        Set(ByVal value As Integer)
            _userID = value
        End Set
    End Property
    
    Sub Page_Load(ByVal obj As Object, ByVal e As EventArgs)
        Dim myUser As New User
        If myUser.LoadFromID(userID) Then
            DetailsView1.DataSource = myUser
            DetailsView1.DataBind()
        Else
            lblMsg.Text = "Error (" & userID & ")"
        End If
    End Sub
</script>

<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px">
</asp:DetailsView>
<asp:Label ID="lblMsg" runat="server" />

Min CreateUser funktion:

        Sub CreateUser(ByVal obj As Object, ByVal e As EventArgs)
            Dim myUser As New User
            If myUser.CreateUser() Then
                message.Text = "New user created, with id=" & myUser.Id
                EditUser1.userID = myUser.Id
            Else
                message.Text = "Error Creating User"
            End If
        End Sub
StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#2
        Sub CreateUser(ByVal obj As Object, ByVal e As EventArgs)
            Dim myUser As New User
            If myUser.CreateUser() Then
                message.Text = "New user created, with id=" & myUser.Id
                Dim myEditControl As editUser = LoadControl("/editUser.ascx")
                myEditControl.userID = myUser.Id
                myPanel.Controls.Add(myEditControl)
            Else
                message.Text = "Error Creating User"
            End If
        End Sub

Denna kod gör att det fungerar. Nu ska jag bara hantera det i min kontroll också, men det känns som det lilla problemet ;-)

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)