Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117

    2 repeater annidiati e accesso ad secondo

    Ciao a tutti,

    ho due repeater

    <asp:repeater id=repCategorie runat="server" DataSource="<%# GetSottoCategorie() %>">
    <ItemTemplate>
    <TR>
    <TD>

    ...

    </TR>
    <asp:Repeater id="repArticoli" runat="server" OnItemDataBound="Repeater_OnItemDataBound" DataSource='<%# GetProdotti(Convert.ToString(DataBinder.Eval(Conta iner.DataItem, "Cod"))) %>'>
    <ItemTemplate>
    <TR>

    ...

    il problema è che posso accedere al primo "repCategorie" repeater ma non al secondo "repArticoli"

    foreach (RepeaterItem i in repArticoli.Items)

    {

    come posso acccedere agli elementi del secondo datagrid??

    In VS con repArticoli ottengo errore, mentre con repCategorie funziona correttamente ma ovviamente non posso accedere agli elementi di repArticoli

    Grazie

  2. #2
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Nessun aiuto???


    io ho creato un pulsante che dovrebbe salvare i valori presenti nel
    repeater figlio (solo i valori maggiori di zero) quindi avrei voluto
    fare:


    foreach (RepeaterItem i in repArticoli.Items)

    {


    il problema è che non riesco ad "intercettare" il repeater figlio, ma solo
    il padre... come posso risolvere il problema??

    Grazie

  3. #3

    questo dovrebbe andare...

    Non ho mai avuto il tempo di guardarlo per benino l'articolo che ti posto, ma questo dovrebbe fare al caso tuo:

    link

    p.s.
    Per visualizzare il contenuto dell'articolo devi prima iscriverti.

    Ciao e buon lavoro,
    Francesco.
    Lupo
    ----

  4. #4
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Grazie per l'aiuto

    ho letto l'articolo ma non capisco come adattarlo alle mie esigenze...

    io non sono nell'itemdatabound ma nell'evento di un dulsante


    foreach (RepeaterItem i in repArticoli.Items)

    {

    e da questo evento non ho visibilità sul repeater annidiato



    Grazie

  5. #5
    senti... secondo me puoi fare così:

    codice:
    System.Web.UI.WebControls.Repeater myRep = new System.Web.UI.WebControls.Repeater();
    
    for (int i=0; i<repCategorie.Items.Count; i++)
    {
       if (repCategorie.Items[i].FindControl("repArticoli")!=null)
       {
          myRep = (System.Web.UI.WebControls.Repeater)(repCategorie.Items[i].FindControl("repArticoli"));
       }
    }
    In questo modo il repeater myRep dovrebbe puntare il Repeater figlio che ti interessa... forse...

    Fammi sapere com'è andata, ok?
    Buon lavoro.
    Lupo
    ----

  6. #6
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Fantastico!!!!

    sembra funzionare

    quindi se ho capito bene, iteri tutti gli elementi presenti nel repeater padre per controllare i figli

    a questo punto se volessi recuperare SOLO gli elementi che hanno il campo quantità > 0 ... tra tutti i repetear figli???



    for (int i=0; i<repCategorie.Items.Count; i++)
    {
    if (repCategorie.Items[i].FindControl("repArticoli")!=null)
    {
    myRep = (System.Web.UI.WebControls.Repeater)(repCategorie. Items[i].FindControl("repArticoli"));


    devo inserire qui il controllo per essere sicuro che vengano controllati tutti gli elementi dei figli????

    ma come recupero una determinata colonna tra i repeater figli?????



    }
    }


  7. #7
    si... il controllo lo devi inserire esattamente nel punto che hai indicato tu...

    il resto delle domande non l'ho mica capito...
    Lupo
    ----

  8. #8
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    intendevo...

    come recupero il valore di un determinato textbox presente in una determianta colonna dei vari repetare figli

    io devo ogni campo "quantità" di ogni riga e verificare se è > 0

    Grazi grazie grazie

  9. #9
    Secondo me... posto che il tuo campo textBox nel repeater figlio si chiami "quant" il valore lo puoi leggere iterativamente così...

    codice:
    System.Web.UI.WebControls.Repeater myRep = new System.Web.UI.WebControls.Repeater();
    
    for (int i=0; i<repCategorie.Items.Count; i++)
    {
       if (repCategorie.Items[i].FindControl("repArticoli")!=null)
       {
          myRep = (System.Web.UI.WebControls.Repeater)(repCategorie.Items[i].FindControl("repArticoli"));
    
          for (int i2=0; i<myRep.Items.Count; i2++)
          {
             if (myRep.Items[i2].FindControl("quant")!=null)
             {
                System.Web.UI.WebControls.TextBox myQuant = (System.Web.UI.WebControls.TextBox)myRep.Items[i2].FindControl("quant");
                // il valore adesso lo puoi leggere da myQuant.Text
             }
          }
       }
    }
    Spero di esserti stato di aiuto... altrmimenti mandami un po' di codice.

    Buon lavoro,

    Francesco.
    Lupo
    ----

  10. #10
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Ottimo!!!

    Grazie 1000

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.