Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Lista di checkbox in una colonna di un Datagrid

    Ho un Datagrid con una colonna dove voglio inserire, per ogni Item, una checkbox per poi gestire la cancellazione contemporanea degli Items selezionati.

    Ora, non mi sembra una buona idea mettere una templatecolumn con una checkbox; neanche usare una checkboxlist, in quanto la prima soluzione non recupera l'insieme degli elementi selezionati e la seconda mi riesce difficile incasellarla, per ogni item, in quello corrispondende del Datagrid.

    Altre idee ?

  2. #2

  3. #3
    metti un <asp:checkbox in ogni item, poi nella sub metterai

    codice:
    Dim ite As DataGridItem
      for each ite in dtg.Items
          if CType(ite.Cells( n ).Controls( 1 ), CheckBox ).checked then
    dove dtg sarà l'id del datatgrid e n il numero della cella in cui hai messo il check
    "...non è detto che sia tardi se non guardi che ora è..."

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    grazie...
    Ma come faccio in fase di rendering del Datagrid a mettere un valore significativo (l'ID del record) per la checkbox ?

    codice:
    <asp:TemplateColumn headertext="Cancella">
    <itemtemplate>
    <asp:checkbox runat="server" id="cbcancella" />
    </itemtemplate>
    </asp:TemplateColumn>

  5. #5
    non ti serve, fai tutto nella sub, ad esempio supponendo che il check sia nella terza cella e che il datagrid abbia come id dtg

    codice:
    sub vai(s as Object, e as EventArgs)
    Dim ite As DataGridItem
    for each ite in dtg.Items
    if CType(ite.Cells( 2 ).Controls( 1 ), CheckBox ).checked then
       response.Write(dtg.DataKeys.Item(ite.ItemIndex) &"
    ")
    end if
    next
    end sub
    "...non è detto che sia tardi se non guardi che ora è..."

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    tutto ok grazie, ma come mai non entra nella If, anche se spunto la check ??


    codice:
    			
    if CType(ite.Cells( 4 ).Controls( 1 ), CheckBox ).checked then
      response.write("la checkbox contenuta nell'item " & ite.ItemIndex & " è checcata.")  
    end if

  7. #7
    la cella è quella giusta? si contano in base 0 quindi come hai scritto tu il check deve essere nella quinta cella
    "...non è detto che sia tardi se non guardi che ora è..."

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    si è quella giusta ho controllato !

    la cosa strana è che se scrivo

    codice:
    for each ite in dgStoricoListini.Items
     response.write(ite.itemIndex & "
    ")
     response.write(dgStoricoListini.DataKeys(ite.ItemIndex) & "
    ")
     response.write(  CType( ite.Cells( 4 ).Controls( 1 ), CheckBox ).checked & "
    ")
    next
    mi da tutti FALSE anche se sono spuntate !



  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    aspetta ! c'entra il PostBack per caso ?

  10. #10
    si, se fai il bind dei dati nel datagrid ad ogni page load
    "...non è detto che sia tardi se non guardi che ora è..."

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.