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.
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.
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
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
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; }
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
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
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
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:
Come posso fare?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
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
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
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.
ho ottimizzato il codice.
prego, ciao
ps: queste cose di solito si fanno con le DataKeys![]()
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/