Construction de mon premier contrôle serveur. Obtenir l'erreur "Valeur ne peut pas être null. Nom du paramètre: enfant" dans le débogage au point indiqué dans mon code. La zone de texte est créée, puis ne devient rien lorsque l'événement page_load du parent est appelé. L'événement page_load se déclenche entre OnInit et CreateChildControls dans mon contrôle. Les exemples sont difficiles à trouver.Le contrôle de serveur personnalisé simple obtient 'La valeur ne peut pas être nulle. Nom du paramètre: enfant '
Public Class ContactForm
Inherits WebControl
#Region "Local variables"
Private _ShowFirstName As Boolean
Private tbFirstName As TextBox
#End Region
<Browsable(True), _
Bindable(True), _
Category("Appearance"), _
DefaultValue(True), _
Localizable(True), _
Description("Show First Name field")> _
Public Property ShowFirstName() As Boolean
Get
Return _ShowFirstName
End Get
Set(value As Boolean)
_ShowFirstName = value
End Set
End Property
Protected Overrides Sub OnInit(e As EventArgs)
If ShowFirstName = True Then
Dim tbFirstName As New TextBox
tbFirstName.ID = "tbFirstName"
tbFirstName.MaxLength = 30
tbFirstName.Text = "IM HERE"
End If
MyBase.OnInit(e)
End Sub
<<<<< --- NOTE: The Page_Load event of the parent fires here ->>>>>
Protected Overrides Sub CreateChildControls()
Me.Controls.Add(tbFirstName) <<---Error: Value cannot be null. Parameter name: child
If HasChildViewState Then
ClearChildViewState()
End If
MyBase.CreateChildControls()
End Sub
End Class
J'ai essayé T | F et aucune valeur. En débogage, je peux voir que la zone de texte est créée correctement. D'une certaine manière, il est supprimé (même si c'est une variable locale) au moment où l'événement CreateChildControls se déclenche. – Ted