J'ai déjà posé ce problème aussi here. Je suis à nouveau confronté au même type de problème. J'ai un contrôle utilisateur qui affiche des informations provenant d'un objet métier. Je l'utilise déjà sur deux pages. Dans les deux pages, j'appelle une méthode avec un objet métier pour lier des contrôles (principalement des étiquettes d'ASP) sur le contrôle de l'utilisateur aux propriétés de l'objet. J'appelle cette méthode dans la méthode LoadComplete de la page ASPX.UserControl travaillant dans une page mais pas dans d'autres
protected void Page_LoadComplete(object sender, EventArgs e)
{
control.LoadData(bussinessObject);
}
Cela fonctionne bien sur les deux pages. Maintenant, j'ai la troisième page où j'utilise le même contrôle. Maintenant, quand je l'appelle LoadData dans cette nouvelle page J'obtiens NullReference exception:
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set
to an instance of an object.
Source Error:
Line 91: lblOrgName.Text = obj.Name;
EDIT: lblOrgName est NULL :(S'il vous plaît aidez-moi
EDIT 2: Je par étagé le code Après le chargement de la page contenant la page, le chargement de PageWload est appelé, puis le chargement de la page du contrôle du problème est interrompu Arrêt de la fermeture de fermeture de cette fonction J'ai chargé lblOrgName dans Immediate Window et affiche null :(
Ensuite, dans LoadComplete de la page contenant le contrôle de l'utilisateur, j'ai arrêté et tapé le nom du contrôle dans la fenêtre immédiate. Il montre toutes les étiquettes et autres contrôles dedans comme nul.
EDIT 3:
J'ai mis constructeur protégé dans le UserControl comme suggéré par Stendhal dans les réponses:
protected OrgInfo(){ }
Maintenant que je reçois cette erreur:
Compiler Error Message: CS0122: 'Controls.OrgInfo.OrgInfo()' is inaccessible
due to its protection level.
La page aspx dans le répertoire racine du projet et le contrôle OrgInfo se trouve dans le dossier Controls.
EDIT 4:
J'ai essayé de créer tous les contrôles (principalement étiquettes) dans la méthode de chargement de la page, mais hélas le nombre de collection Controls est 0 (zéro)!
est-ce que obj est nul ou lblOrgName? – shahkalpesh