Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Estrapolare dati da una gridview

    Salve, ho una gridview popolata.

    Ho bisogno di fare un ciclo per analizzare tutti le righe della griglia e al verificarsi di una condizione, prendere il valore di un campo.

    Grazie.

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
                    For Each Riga As GridViewRow In Grid.Rows
                       If Riga.RowType = DataControlRowType.DataRow Then
                          If Riga.Cells(0).Text = "testoCondizione" Then
                            valore = Riga.Cells(1).Text
                          End If
                       End if
                    Next
    Ultima modifica di djciko; 01-12-2014 a 18:57

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    oppure, ad esempio puoi usare il numero delle righe della grid, qui per selezionare tutte le checkbox (una per riga).

    C#
    codice:
    for (int contatore = 0; contatore < Grid.Rows.Count; contatore++)
    {
      CheckBox ChkSeleziona = (CheckBox)Grid.Rows[contatore].FindControl("chkSelectedItem");
      ChkSeleziona.Checked = true;
    }

  4. #4
    Grazie mille. Se possibile il codice in vb.net perchè il C lo conosco molto poco.

    Molto chiaro. Nel mio caso, però, nel caso della condizione si parla di una checkbox.
    Se il cliente seleziona la check, devo prendermi il valore della prima cella di ogni riga.
    Puoi aiutarmi?


    Ultima modifica di Dario the best; 01-12-2014 a 19:53

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    codice:
    Dim contatore As Integer = 0
    While contatore < Grid.Rows.Count
        Dim ChkSeleziona As CheckBox = CType(Grid.Rows(contatore).FindControl("chkSelectedItem"), CheckBox)
        ChkSeleziona.Checked = True
        contatore+=1
    End While

  6. #6
    Grazie mille, sembra essere la strada corretta. L'unico neo è che nella condizione: il risultato è sempre true, sia che la check sia stata fleggata sia che non lo sia stata.
    Di seguito il codice:

    codice:
     
    Dim Id_Utenti As String = ""
        Dim i As Integer = 0
        Dim CKVersa As CheckBox = CType(GrdProvvigioni.Rows(i).FindControl("CKVersa"), CheckBox)
        While i < GrdProvvigioni.Rows.Count - 1
          If CKVersa.Checked Then Id_Utenti &= IIf(i = 0, GrdProvvigioni.Rows(i).Cells.Item(0).Text, ";" & GrdProvvigioni.Rows(i).Cells.Item(0).Text)
          i += 1
        End While
    Come posso fare?

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    L'assegnazione alla nuova CKVersa devi farla NEL ciclo, non fuori

    codice:
     
    Dim Id_Utenti As String = ""
    Dim i As Integer = 0
    
    For Each Riga As GridViewRow In Grid.Rows
     If Riga.RowType = DataControlRowType.DataRow Then
       Dim CKVersa As CheckBox = CType(Riga.FindControl("CKVersa"), CheckBox)
       If CKVersa.Checked Then 
          Id_Utenti &= IIf(i = 0, Riga.Cells.Item(0).Text, ";" & Riga.Cells.Item(0).Text)
       End if
     End If
    Next
    Ultima modifica di djciko; 02-12-2014 a 13:05

  8. #8
    Esatto, ci sono appena arrivato da solo, fuori dal ciclo perde la dinamicità ed assume il valore solo della prima row. Infatti stavo per modificare il mess e ringraziarvi.
    Grazie ad entrambi, buona giornata.

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ho ottimizzato il codice.
    prego, ciao

    ps: queste cose di solito si fanno con le DataKeys

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 © 2025 vBulletin Solutions, Inc. All rights reserved.