Salut

J'ai fabriqué un composant utilisteur qui marche bien. Pour l'instant je le place dans ma page de manière classique, avec une balise @Register et une balise html de type <uc3:

Et là, tout fonctionne bien.

Maintenant je voudrais changer ça et faire cette insertion par le codeBehind. Mais dés que je fais ça il me dit que
La référence d'objet n'est pas définie à une instance d'un objet.
Et il pointe sur une ligne du CodeBehind du composant, la première où je fais une insertion de control dans la table que j'ai déclaré en HTML dans mon composant.
Je vais mettre un peu de code pour illustrer.
Voici mon CodeBehind de ma page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		Dim troupage As HtmlForm
		troupage = Page.Controls(0).FindControl("form1")
		Dim forminscrip As New jemprunte_Inscription
		forminscrip.Mode = "inscription"
		troupage.FindControl("cphCentral").Controls.Add(forminscrip)
	End Sub
Et le code HTML de la même page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<asp:Content ID="Content1" ContentPlaceHolderID="cphMenuGauche" Runat="Server">
	<uc1:MenuGaucheGlobal ID="MenuGaucheGlobal1" runat="server" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cphCentral" Runat="Server">
 
</asp:Content>
Puis le code HTML du composant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="Inscription.ascx.vb" Inherits="jemprunte_Inscription" %>
<script type='text/javascript'> 
	var tbCity_ClientItemSelected = function(sender, e){		$get('<%=hfVille.ClientID %>').value = e.get_value(); }	
	var tbNaiss_ClientItemSelected = function(sender, e){		$get('<%=hfNaiss.ClientID %>').value = e.get_value(); }
</script>
<asp:TextBox ID="hfVille" runat="server" CssClass="invi"></asp:TextBox>
<asp:TextBox ID="hfNaiss" runat="server" CssClass="invi"></asp:TextBox>
<asp:Table ID="tblGene" runat="server"></asp:Table>
Puis la partie du code Behind concernée par l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Dim ro, roErr As New TableRow
[...]
tblGene.Rows.Add(ro)
Entre ces deux lignes, je prépare plein de truc pour remplir mes cellules de tables, mais visiblement, c'est aps ça qui le dérange, c'est latable, il la trouve pas alors qu'elle est dans le HTML.
J'ai tout de même essayé de la mettre dans le codeBehind, amis ça dvint la grosse mouise avec le reste du code et surtout le Script.

Pouvez vous m'aider ?