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

    [c#] Valore della checkbox selezionata

    Ciao a tutti.
    Ho una DropDownList per conto suo e una serie di checkbox generate dinamicamente in un datalist (ma non una checkbox list), il tutto naturalmente nello stesso Form.

    Quello che vorrei fare è semplice:
    selezionare una o più checkbox e, selezionando successivamente una delle voci della DropDownList, mi deve prelevare quali chechkbox ho selezionato perchè ci devo lavorare su a livello database. (un pò come quando su gmail o hotmail si spostano i messaggi in cartelle diverse da Posta in Arrivo).

    Come faccio a recuperare quali sono le checkbox selezionate???

    Grazie in anticipo
    ...ritengo che il tabacco abbia un futuro!! (Lord Wessex - Shakespeare in Love)

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    - Metti un DataKeyField al datalist (cioè un campo che identifica la riga, di solito "ID")
    - Metti un ID alla checkbox (ad es. "cb")
    - Al SelectedIndexChanged della dropdownlist:

    VB:
    codice:
        Private Sub dropdownlist_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dropdownlist.SelectedIndexChanged
            Dim arraySelezionati As ArrayList
    
            For Each DLI As DataListItem In dropdownlist.Items
                Dim cb As CheckBox = DirectCast(DLI.FindControl("cb"), CheckBox)
                If cb.Checked Then
                    arraySelezionati.Add(dropdownlist.DataKeys(DLI.ItemIndex))
                End If
            Next
        
            For i As Integer = 0 To arraySelezionati.Count - 1
                Response.Write("Hai selezionato la riga con ID: " & arraySelezionati(i))
            Next
       End Sub
    C#
    codice:
     private void dropdownlist_SelectedIndexChanged(object sender, System.EventArgs e)
     {
         ArrayList arraySelezionati;
        
         foreach (DataListItem DLI in dropdownlist.Items) {
             CheckBox cb = (CheckBox)DLI.FindControl("cb");
             if (cb.Checked) {
                 arraySelezionati.Add(dropdownlist.DataKeys(DLI.ItemIndex));
             }
         }
        
         for (int i = 0; i <= arraySelezionati.Count - 1; i++) {
             Response.Write("Hai selezionato la riga con ID: " + arraySelezionati(i));
         }
     }
    prova

  3. #3
    E ci siamo quasi. Solo che mi dà errore sulla riga c# quando scrivi

    arraySelezionati.Add(dropdownlist.DataKeys(DLI.Ite mIndex))

    dicendomi che il controllo "dropdownlist" non ha il DataKeys.
    Ho provato con altri metodi ma poi mi dà problemi sull'ArrayList.

    Che si fa?

    Grazie
    ...ritengo che il tabacco abbia un futuro!! (Lord Wessex - Shakespeare in Love)

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    scusami, guarda l'orario in cui ho postato

    codice:
     private void dropdownlist_SelectedIndexChanged(object sender, System.EventArgs e)
     {
         ArrayList arraySelezionati;
        
         foreach (DataListItem DLI in NOMEDATALIST.Items) {
             CheckBox cb = (CheckBox)DLI.FindControl("cb");
             if (cb.Checked) {
                 arraySelezionati.Add(NOMEDATALIST.DataKeys(DLI.ItemIndex));
             }
         }
        
         for (int i = 0; i <= arraySelezionati.Count - 1; i++) {
             Response.Write("Hai selezionato la riga con ID: " + arraySelezionati(i) + "
    ");
         }
     }
    Avevo confuso la Dropdownlist con il Datalist

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.