Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Datagrid con checkbox

  1. #1
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    Datagrid con checkbox

    Caiao a tutti ho letto già un bel pò di post riguardo l'argomento ma non mi sono stati molto d'aiuto.

    Allora io ho bisogno di creare un datagrid con dei dati e un checkbox. Il checkbox mi servere per rendere visibile o invisibile poi latoclient il record.

    Ora Prima di tutto creo il datagrid:

    <aspataGrid ID="Esp_vis" runat="server" DataKeyField="id_esperienza" AutoGenerateColumns="false">
    <columns>
    <asp:BoundColumn headertext="Ente" DataField="ente"></asp:BoundColumn>
    <asp:BoundColumn headertext="Professione" DataField="professione"></asp:BoundColumn>
    <asp:BoundColumn headertext="Ruolo" DataField="ruolo"></asp:BoundColumn>
    <asp:TemplateColumn headertext="Nascondi">
    <itemtemplate>
    <asp:checkbox runat="server" id="cbnascondi" />
    </itemtemplate>
    </asp:TemplateColumn>
    </columns>
    </aspataGrid>


    <asp:Label ID="messaggio" runat="server"></asp:Label>



    <asp:Button ID="Button1" runat="server" Text="Salva" /></div>

    La prima domanda è come faccio quando carico il datagrid a far capire quale checkbox deve essere selezionato e quale no non avendo un DataField?

    Poi seocnda domanda al click di Button1 come faccio a modificare i vari record nel Db con i valori selezionati e non?

    Grazie a tutti.

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    sinceramente non è che la cosa mi sia molto chiara (come carichi la griglia ?), ma cmq come prima soluzione mi viene in mente:

    codice:
    <asp:checkbox runat="server" id="cbnascondi" Checked='<%# Checked(container.dataitem("professione")) %>' />
    ...e nel codice una function Checked che restituisce un boolean, e fa le sue elaborazioni dipendentemente dal campo passato (ho supposto per esempio che dipenda dal campo professione).

    Per la seconda domanda basta fare un ciclo:
    codice:
            For Each elemento As DataGridItem In Esp_vis.Items
                If CType(elemento.Cells(3).FindControl("cbnascondi"), CheckBox).Checked = True Then
                    ' fai quello che devi fare per True
                Else
                    ' fai quello che devi fare per False
                End If
            Next
    Cells(3) è la cella dove c'e' la checkbox nascondi...

  3. #3
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    come carico la griglia

    è anche questa una domanda. Come la carico?

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Re: come carico la griglia

    Originariamente inviato da mexican
    è anche questa una domanda. Come la carico?
    in 1.1 ?

  5. #5
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    Re: Re: come carico la griglia

    Originariamente inviato da djciko
    in 1.1 ?
    anche 2

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    di solito fai una query, crei un dataset con il risultato e poi:

    griglia.datasource = dataset
    griglia.databind()

    una guida per l'accesso ai dati: http://msdn2.microsoft.com/it-it/library/3yh7zzaz(VS.80).aspx

    (copia e incolla l'intero link)

  7. #7
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    si questo lo sò

    Originariamente inviato da djciko
    di solito fai una query, crei un dataset con il risultato e poi:

    griglia.datasource = dataset
    griglia.databind()

    una guida per l'accesso ai dati: http://msdn2.microsoft.com/it-it/library/3yh7zzaz(VS.80).aspx

    (copia e incolla l'intero link)
    un datagrid normale so come crearlo è con il checkbox che non saprei come caricarlo. Ad esmepio per far spuntare i check che nel Db risultato spuntati...come faccio?

    parto da questo:
    strsql = "Select * from Esperienze"
    cmdSql = New OleDbCommand(strsql, conn)
    rs = cmdSql.ExecuteReader()
    categorie.DataSource = rs
    categorie.DataTextField = "visibile"
    categorie.DataValueField = "id_esperienza"
    categorie.DataBind()
    rs.Close()

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Con la funzioncina legata alla checkbox come gia' postato, se dipende da altre colonne...

    Se non, basta dargli il campo sorgente <%# Container.DataItem("ValoreDelCheckDellaCheckBox") %> (alla checkbox nell'itemtemplate, naturalmente)

    Cioè, mettiamo che dalla tua SELECT * FROM ESPERIENZE venga fuori un campo ValoreCheck a true e false alternati, puoi scrivere il tag così:

    codice:
    <asp:checkbox ..... Checked='<%# Container.DataItem("ValoreCheck") %>' />

  9. #9
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    Quindi ricapitolando:

    Questo è il datagrid:
    codice:
    <asp:DataGrid ID="Esp_vis" runat="server" DataKeyField="id_esperienza" AutoGenerateColumns="false">
                <columns>
                      <asp:BoundColumn headertext="Ente" DataField="ente"></asp:BoundColumn>
                      <asp:BoundColumn headertext="Professione" DataField="professione"></asp:BoundColumn>
                      <asp:BoundColumn headertext="Ruolo" DataField="ruolo"></asp:BoundColumn>
                      <asp:TemplateColumn headertext="Nascondi">
                          <itemtemplate>
                            <asp:checkbox runat="server" id="cbnascondi" Checked="<%#Checked(container.dataitem("visibile")) %>" />
                          </itemtemplate>
                      </asp:TemplateColumn>
                </columns>
            </asp:DataGrid>
    Questo il codice:
    codice:
    strsql = "Select * from Esperienze"
    cmdSql = New OleDbCommand(strsql, conn)
    rs = cmdSql.ExecuteReader()
    categorie.DataSource = rs
    categorie.DataTextField = "visibile"
    categorie.DataValueField = "id_esperienza"
    categorie.DataBind()
    rs.Close()
    
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    				connetti()
    		Try
    				For Each elemento As DataGridItem In Esp_vis.Items
    					If CType(elemento.Cells(3).FindControl("cbnascondi"), CheckBox).Checked = True Then
    		
    					strsql = "Update Ricerca_Vis set "
    					strsql = strsql & " visibile= - 1"
    					strsql = strsql & " where id_esperienza=" & Esp_vis.dataKeys(dgItem.ItemIndex)
    					cmdSql = New OleDbCommand(strsql, conn)
    					cmdSql.ExecuteNonQuery()
    					End If
    				Next
            Catch errore As Exception
                messaggio.Text = "Si è verificato il seguente errore: " & errore.Message
            Finally
                conn.Close()
            End Try
        End Sub

  10. #10
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    un'altro problemino

    <asp:checkbox runat="server" id="cbnascondi" Checked="<%#TornaValore(Container.DataItem("visibi le"))%>" />

    Protected Function TornaValore(ByVal visibile As Boolean) As String

    If visibile = -1 Then
    TornaValore = True
    Else
    TornaValore = False
    End If

    End Function

    Ho questo per far scrivere true o false nel check ma mi da questo errore:

    Messaggio di errore del parser: Impossibile creare un oggetto di tipo 'System.Boolean' dalla relativa rappresentazione di stringa '"<%#TornaValore(Container.DataItem("visibile") )%' per la proprietà 'Checked'.

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.