none
Ajouter dynamiquement un UserControl RRS feed

  • Discussion générale

  • Bonjour à tous,

    Lorsque j'execute mon programme, j'ai l'erreure suivante 'La référence d'objet n'est pas définie à une instance d'un objet.' lorsque j'essaye de créer dynamiquement un UserControl.


    Voici les fichiers sources :

    ********************************************
    membre.ascx.cs
    ********************************************

    using

     

    System;

    using

     

    System.Collections.Generic;

    using

     

    System.Web;

    using

     

    System.Web.UI;

    using

     

    System.Web.UI.WebControls;

     

    public

     

    partial class UI_membre : System.Web.UI.UserControl

    {

     

    protected void Page_Load(object sender, EventArgs e)

    {

    }

     

     

    public string PRENOM

    {

     

    get

    {

     

    return lblPrenom.Text;

    }

     

    set

    {

    lblPrenom.Text =

    value;

    }

    }

     

     

    public string NOM

    {

     

    get

    {

     

    return lblNom.Text;

    }

     

    set

    {

    lblNom.Text =

    value;

    }

    }

     

     

    public string URL_PHOTO_PETITE

    {

     

    get

    {

     

    return ibURL.ImageUrl;

    }

     

    set

    {

    ibURL.ImageUrl =

    value;

    }

    }

     

     

    public string PostBackUrl

    {

     

    get

    {

     

    return ibURL.PostBackUrl;

    }

     

    set

    {

    ibURL.PostBackUrl =

    value;

    }

    }

    }
    ********************************************
    membre.ascx.cs FIN
    ********************************************


    ********************************************
    membre.ascx
    ********************************************
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="membre.ascx.cs" Inherits="UI_membre" %>

    <

     

    div>

     

    <asp:ImageButton ID="ibURL" runat="server" /><br />

     

    <asp:Label ID="lblPrenom" runat="server" Text=""></asp:Label>&nbsp;<asp:Label ID="lblNom"

     

    runat="server" Text=""></asp:Label>

    </

     

    div>
    ********************************************
    membre.ascx FIN
    ********************************************



    ********************************************
    equipe.aspx.cs
    ********************************************
    .........

     

    // Create the array to store the UI_membre

     

    UI_membre[] myArray = new UI_membre[nbRows];

     

    // Populate myArray with UI_membre objects

     

    for (int i = 0; i < nbRows; i++)

    {

    myArray[i] =

    new UI_membre();

    }

     

    if (nbRows > 0)

    {

     

    for (int i = 0; i < nbRows; i++)

     

    {

    myArray[i].NOM = myDataSet.Tables[0].Rows[i].ItemArray.GetValue(1).ToString(); « ………..ERREUR ICI………… »

    ...

    ********************************************
    equipe.aspx.cs FIN
    ********************************************

    Quelqu'un aurai-il une idée s'il vous plaît ?

    Merci.

    Carrillon.

    lundi 27 juillet 2009 11:57

Toutes les réponses

  • Bonjour,

    1- Tu n'es pas dans le bon forum.
    2- A qu'elle moment récupères tu ton dataset ?
    3- Utilise plutôt une liste de string List<String> plutôt qu'un array.


    myCollections http://mycollections.codeplex.com/
    mercredi 9 septembre 2009 06:53
  • Bonjour,

    Ce problème doit certainement venir du fait que myDataSet n'a pas été initialisé (null).
    Lancez le déboguer de Visual Studio pour mieux comprendre ce qui se passe.

    Cordialement
    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    mercredi 9 septembre 2009 22:23
    Modérateur
  • Bonjour,

    Sur la ligne de ton erreur: myDataSet.Tables[0].Rows[i].ItemArray.GetValue(1).ToString();, vu le message que tu reçoit, il y a deux point qui peuvent lever l'exception:

    1. Ton DataSet n'est pas instancié correctement
    2. L'erreur peutvenir du fait que GetValue(1) te retourne une valeur null et quand tu exécute la méthode ToString à la suite, celle ci te donne l'erreur: La référence d'objet n'est pas définie à une instance d'un objet.

    Pour en être certain, exécute le code en posant un point d'arrêt sur la ligne en question puis analyse tes variables DataSet et le résultat de l'instruction myDataSet.Tables[0].Rows[i].ItemArray.GetValue(1) sans la méthode ToString.


    .NET life
    if (this.Reply.HelpsYou)
    {
        MarkAsAnswer = true;
    }
    vendredi 6 août 2010 14:12