J'ai un problème avec mon contrôle utilisateur. A l'intérieur, j'ai un contrôle case à cocher. Je veux créer ce contrôle utilisateur à la volée et l'insérer dans le contrôle asp: table.ASP.NET UserControl - référence null?
MyControl pp = new MyControl();
pp.pageNameCb.Text = "lorem";
TableCell tc = new TableCell();
tc.Controls.Add(pp);
table.Rows[0].Cells.Add(tc);
Mais, la pageNameCb
est nulle, même si je crée son exemple à la main, rien ne s'affiche dans ma table. Pourquoi ?
Voici mon code:
<asp:View ID="new_role_view" runat="server">
<asp:Table ID="table1" runat="server">
<asp:TableRow ID="TableRow1" runat="server">
<asp:TableCell ID="TableCell1" runat="server">
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:View>
Ensuite, si je change ce point de vue est actif, je crée mon contrôle:
MyControl pp = new MyControl();
table.Rows[0].Cells[0].Controls.Add(pp);
le Page_Init de MyControl:
protected void Page_Init(object sender, EventArgs e)
{
if (pageNameCb == null)
pageNameCb = new CheckBox();
pageNameCb.Text = "works";
}
et encore , rien ne montre
procédé dans lequel de la page vous exécutez ce code? essayez également de définir un ID pour pp après l'avoir créé. –
Obtenez-vous une exception? – atoMerz
Vérifier le code HTML généré et voir si la case à cocher a vraiment été ajoutée dans le tableau ou non – Rahul