IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Récupérer une cellule d'un tableau d'un Repeater


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 71
    Par défaut Récupérer une cellule d'un tableau d'un Repeater
    Bonsoir

    J'ai un repeater qui me crée un tableau à partir d'une source en xml, dont une partie du code est ci-dessous, le tout mis dans un "table" pour avoir la forme d'un tableau.

    Je crée aussi, à chaque ligne, un bouton "voir" qui devra afficher le contenu de la ligne ... et le souci ben je n'arrive pas à récupérer le contenu de la ligne, même pas d'une cellule du tableau, j'obtiens une erreur de cast ... oO
    Impossible d'effectuer un cast d'un objet de type 'System.Web.UI.HtmlControls.HtmlTableCell' en type 'System.Web.UI.WebControls.TableCell'.
    Merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <asp:Repeater ID="Rp1" runat="server" OnItemDataBound="Repeater1_ItemDataBound" 
                                            OnItemCommand="Repeater1_ItemCommand">
            <HeaderTemplate>
            <table border="1">
    ....
    <ItemTemplate>
                <tr>
           <td><asp:Button ID="Button1" runat="server" Text="Voir" /></td> <%--OnClick="btnInsert_Click"--%>
           <td runat="server" id="num"><%# DataBinder.Eval(Container.DataItem, "num")%></td>
           <td runat="server" id="date">  <%# DataBinder.Eval(Container.DataItem, "date")%></td>
           <td runat="server" id="titre">  <%# DataBinder.Eval(Container.DataItem, "titre")%></td>
           <td runat="server" id="desc">  <%#  DataBinder.Eval(Container.DataItem, "desc")%></td>
           <td runat="server" id="rem"><%# DataBinder.Eval(Container.DataItem, "rem")%></td>
           <td><asp:Label ID="etat" runat="server" ></asp:Label></td>
       </tr>
     
            </ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
            </asp:Repeater>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
            {
                ListItemType rowType = (ListItemType)e.Item.ItemType;
                if (rowType == ListItemType.Item || rowType == ListItemType.AlternatingItem)
                {
                    TableCell cell = (TableCell)e.Item.FindControl("num");
                }
            }
    
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Button btnInsert = (Button)e.Item.FindControl("Button1");
                    if (btnInsert != null)
                    {
                        RepeaterItem ri = btnInsert.Parent as RepeaterItem;
                        if (ri != null)
                        {
                            btnInsert.CommandArgument = ri.ItemIndex.ToString();
                        }
                    }
    
                    Label etat = (Label)e.Item.FindControl("etat");
                    if (etat != null)
                        etat.Text = "TEST";
                    
                }
            }

  2. #2
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableCell cell = (TableCell)e.Item.FindControl("num");
    A la place essaies de mettre ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HtmlTableCell cell = (HtmlTableCell)e.Item.FindControl("num");
    A+

  3. #3
    Membre éclairé Avatar de kohsaka
    Homme Profil pro
    Intégrateur HTML / Developpeur .NET
    Inscrit en
    Janvier 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur HTML / Developpeur .NET

    Informations forums :
    Inscription : Janvier 2007
    Messages : 383
    Par défaut
    Au pire HtmlControl devrait fonctionner aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HtmlControl cell = (HtmlControl)e.Item.FindControl("test");

Discussions similaires

  1. Récupérer position relative d'une cellule dans un tableau
    Par c.piette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2015, 14h22
  2. Réponses: 1
    Dernier message: 06/12/2014, 22h03
  3. [XL-2003] Récupérer une cellule de la dernière ligne non vide d'un tableau
    Par christoff916 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/08/2011, 14h22
  4. Réponses: 3
    Dernier message: 01/12/2003, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo