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 queEt 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.La référence d'objet n'est pas définie à une instance d'un objet.
Je vais mettre un peu de code pour illustrer.
Voici mon CodeBehind de ma page :
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
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
Puis le code HTML du composant
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 la partie du code Behind concernée par l'erreur
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>
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim ro, roErr As New TableRow [...] tblGene.Rows.Add(ro)
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 ?
Partager