euh ... on appel pas un constructeur !!!
le constructeur est automatiquement appellé quand on instancie le control
Control ctrl = new ctrl();
mais la je vois pas pourquoi une classe fille ???? ce que je te dis c'est redefinir le new de ta page !
Public Class Tapage : System.Web.UI.Page
{
// la tu declares le datagrid
//Protected WithEvents ctrl() as Datagrid ' <== mettre ca en C#
void Tapage()
{
// ici tu peux l'ajouter
}
void page_load()
{
la t'en fait comme d'habitude
}
}
et le page_load est trés loin d'etre la premiere chose qui est appellé au sein de la classe, il y a beaucoup de choses avant, il y a meme des event : init ...
en mettant tes controles dans le constructeur de la classe tu vas faire à peu prés comme si tu les mettais dans la page.
En fait, lorsque tu fais ta requete, tu vas charger tapage.aspx, la il va regarder toutes tes balises runat=server puis va les charger dans la classe spécifié dans le header ...
donc les controles qui sont dans la page, sont chargé dans le new (je sais pas exactement dans quelle méthode, j'ai pas été regardé aussi profond) en instanciant les controles dans le new tu n'auras donc aucune difference, la seule chose qui pourrait t'emmerder c'est qu'il faut que tu aie une collection de datagrid, donc pour t'abonner aux events, ce sera un poil plus chiant.
Ce truc m'interresse donc des que j'ai le temps j'essaierais de faire ce que j'ai en tete.
Cyril -
MCP ASP.netWebmaster de :
Hoshimi.CodeS-SourceS.fr