none
Problème avec repeater imbriqués RRS feed

  • Question

  • Bonjour,
    voila j'ai l'affichage de toutes mes taches à faire dans la table intervention et j'affiche tout ce que je souhaite afficher.
    Mon problème est que je souhaite aussi afficher le nom de la personne (qui se trouve dans une autre table, la table colaborateur) qui a effectuer la tache est pour cela je dois utiliser un autre repeater mais je n'y arrive pas.
    A noter que je peux acceder à ma table colaborateur à partir de ma table intervention puis def_jour et j'accède à colaborateur.

    VOila mon code

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     <asp:Repeater runat="server" ID="RepeaterIdCollaborateur">
    <ItemTemplate>
    <tr>

    <td>
    <%# (DataBinder.Eval(Container.DataItem, "PRENOM"))%>
    </td>
    <td>
    fdsfsdddddddddddddddddddddddddddd
    </td>
    </ItemTemplate>
    </asp:Repeater>
    <asp:Repeater runat="server" ID="RepeaterTableau">
    <ItemTemplate>
    <td>
    <%# (DataBinder.Eval(Container.DataItem, "LIBELLE")) %>
    </td>
    <td>
    <%# (DataBinder.Eval(Container.DataItem, "HEURE"))%>
    </td>
    <td>
    <%# (DataBinder.Eval(Container.DataItem, "SUR_PLACE"))%>
    </td>
    <td>
    <%# (DataBinder.Eval(Container.DataItem, "IS_CLOS"))%>
    </td>
    <td align="center">
    <%# getModif(Container.DataItem)%>
    </td>
    <td align="center">
    <%# getSupprimer(Container.DataItem)%>
    </td>
    </tr>
    </ItemTemplate>
    </asp:Repeater>

    Le behind :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    IdDefJour = int.Parse(Request["IdDefJour"].ToString());
    Def_Jour leDefJour = Def_Jour.Get((int)IdDefJour);
     
    IdCollaborateur = int.Parse(Request["IdCollaborateur"].ToString());
    Def_Jour leCollaborateur = Def_Jour.Get((int)IdCollaborateur);


    List<Intervention> lIntervention = Intervention.GetAllVisibleInterventionByDef_JourETIdCollabo(IdDefJour,IdCollaborateur);
    RepeaterTableau.DataSource = lIntervention;
    RepeaterTableau.DataBind();
     
    List<Collaborateur> lCollaborateur = Intervention.GetCollaboById(IdCollaborateur);
    RepeaterIdCollaborateur.DataSource = lCollaborateur;
    RepeaterTableau.DataBind();


    PS si je ferme mon premier repeater à la fin et pas au milieu j'ai une erreur (CS0103: Le nom 'RepeaterTableau' n'existe pas dans le contexte actuel )


    Petite explication plus : En fait en partant dintervention on doit passer par def jour pour arriver jusqua collaborateur

    Pour être plus précis, je n'ai accès à ma table collaborateur qu'en passant d'abord par la table Def_Jour.

     

    On m'a déjà répondu:

    /////

    Dans quel événement as tu mis ce code? Tu ne peux pas accéder directement à ton objet RepeaterTableau en faisant

    Code :
    1
    2
    RepeaterTableau.DataSource = lIntervention;
    RepeaterTableau.DataBind();

    tu dois le déduire de son control parent qui est RepeaterIdCollaborateur en parcourant ses items

    ////

     

    Sur un autre forum mais je ne sais pas du tout faire ça et je n'ai plus de réponses sur cet autre forum...

    Merci d'avance !

     




    mardi 5 avril 2011 07:08

Réponses