Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di fungo
    Registrato dal
    Jul 2000
    residenza
    Caorle
    Messaggi
    726

    EditCommandColumn e DataGrid

    Ciao a tutti, sono alle prese con il controllo EditCommandColumn, quello che vorrei capire se oltre ai metodi edit update cancel si possono aggiungere altri metodi.
    Quello che mi manca e la voce cancella, per rimuovere il record del datagrid.

    2° domanda:

    E' possibile inserire nelle celle di un datagrid dei controlli checkbox?

    Grazie e buona giornata.

    Aspetto suggerimenti.
    Mungo Mauro

  2. #2

    Re: EditCommandColumn e DataGrid

    Originariamente inviato da fungo
    Quello che mi manca e la voce cancella, per rimuovere il record del datagrid.
    Tra i vari tipi di button predefiniti che puoi aggiungere c'e' anche "delete".
    E' possibile inserire nelle celle di un datagrid dei controlli checkbox?
    se con fonte dati utilizzi una tabella e in particolare una colonna di tipo boolean (sqlserver 2000) quando metti in modalita' edit la riga automaticamente ti ritrovi con una checkbox al posto della textbox. Comunque, se invece di una semplice boundcolumn utilizzi una template column puoi cliccare tasto destro su datagrid, selezionare "edit template" e selezionare la colonna che ti interessa. Ti si apre un editor nel quale puoi sostituire la texbox con una checkbox.
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di fungo
    Registrato dal
    Jul 2000
    residenza
    Caorle
    Messaggi
    726

    RE

    Grazie
    Mungo Mauro

  4. #4
    Utente di HTML.it L'avatar di fungo
    Registrato dal
    Jul 2000
    residenza
    Caorle
    Messaggi
    726

    RE

    Ciao riccardone, ho provato ma niete da fare.

    Ti allego il codice gli dai un'occhiata ?

    Grazie.

    HTML:
    <%@ Page Language="vb" Debug="true" AutoEventWireup="True" CodeBehind="editTBL.aspx.vb" Inherits="gentedimare.editTBL" %>
    <HTML>
    <HEAD>
    </HEAD>
    <Form runat="server">
    <aspataGrid AutoGenerateColumns="False" CellPadding="4" DataKeyField="ID" Font-Name="Verdana"
    Font-Size="8pt" ID="dataGrid1" runat="server" OnUpdateCommand="updateDataBase" OnEditCommand="setEditMode"
    OnCancelCommand="cancelEdit" OnDeleteCommand="removeRS" BackColor="White" BorderColor="#CC9966"
    BorderStyle="None" BorderWidth="1px" Font-Names="Verdana">
    <SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
    <EditItemStyle ForeColor="Red" BackColor="#C0FFC0"></EditItemStyle>
    <ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
    <HeaderStyle Font-Size="8pt" Font-Names="Arial" Font-Bold="True" HorizontalAlign="Center" ForeColor="#000000"
    BackColor="#FFFFCC"></HeaderStyle>
    <FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
    <Columns>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Aggiorna" CancelText="Ripristina" EditText="Modifica"></asp:EditCommandColumn>
    <asp:ButtonColumn Text="Rimuovi" HeaderImageUrl="images/delete.gif" CommandName="Delete"></asp:ButtonColumn>
    <asp:ButtonColumn Text="Nuovo" HeaderImageUrl="images/new.gif" CommandName="Nuovo"></asp:ButtonColumn>
    <asp:BoundColumn Visible="False" DataField="ID" ReadOnly="True" HeaderText="ID SERATA"></asp:BoundColumn>
    <asp:BoundColumn DataField="DATA" HeaderText="DATA"></asp:BoundColumn>
    <asp:BoundColumn DataField="SERATA" HeaderText="SERATA"></asp:BoundColumn>
    <asp:BoundColumn DataField="ARTISTA" HeaderText="ARTISTA"></asp:BoundColumn>
    <asp:BoundColumn DataField="TIPO_SERATA" HeaderText="TIPO SERATA"></asp:BoundColumn>
    <asp:BoundColumn DataField="IMG_LOCANDINA" HeaderText="IMMAGINE LOCANDINA"></asp:BoundColumn>
    <asp:BoundColumn DataField="VIEW" HeaderText="VISUALIZZA"></asp:BoundColumn>
    <asp:BoundColumn DataField="WINDOWS" HeaderText="FINESTRA"></asp:BoundColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
    </aspataGrid>
    </Form>
    </HTML>


    CODICE:
    Inherits System.Web.UI.Page

    #Region " Codice generato da Progettazione Web Form "
    ......
    #End Region

    Sub Page_Load(ByVal Source As Object, ByVal E As EventArgs)
    If Not IsPostBack Then
    bindDataGrid()
    End If
    End Sub

    Sub bindDataGrid()
    Dim myConn As OleDbConnection
    Dim myOleDbAdapter As OleDbDataAdapter
    Dim connStr, sqlStr As String
    Dim myDataSet As New DataSet
    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("mdb-database/db.mdb")
    sqlStr = "SELECT * FROM TBL_SERATE ORDER BY DATA"
    myConn = New OleDbConnection(connStr)
    myConn.Open()
    myOleDbAdapter = New OleDbDataAdapter(sqlStr, myConn)
    myOleDbAdapter.Fill(myDataSet, "dtSerate")
    dataGrid1.DataSource = myDataSet.Tables("dtSerate")
    dataGrid1.DataBind()
    myConn.Close()
    End Sub

    Sub setEditMode(ByVal s As Object, ByVal e As DataGridCommandEventArgs)
    dataGrid1.EditItemIndex = e.Item.ItemIndex
    bindDataGrid()
    End Sub

    Sub cancelEdit(ByVal s As Object, ByVal e As DataGridCommandEventArgs)
    dataGrid1.EditItemIndex = -1
    bindDataGrid()
    End Sub

    Function ConvertiData(ByVal data)
    Dim giorno, mese, anno As String
    giorno = Mid(data, InStr(1, data, "/") + 1, InStrRev(data, "/") - InStr(1, data, "/") - 1)
    mese = Left(data, InStr(1, data, "/") - 1)
    anno = Right(data, Len(data) - InStrRev(data, "/"))
    ConvertiData = giorno & "/" & mese & "/" & anno
    End Function

    Sub removeRS(ByVal s As Object, ByVal e As DataGridCommandEventArgs)
    Dim myConn As OleDbConnection
    Dim connStr, sqlStr As String
    Dim myUpdateCommand As OleDbCommand
    Dim intPid As Integer

    intPid = dataGrid1.DataKeys.Item(e.Item.ItemIndex)

    sqlStr = "DELETE * FROM TBL_SERATE WHERE (((TBL_SERATE.ID)=" & intPid.ToString & "));"

    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("mdb-database/db.mdb")
    myConn = New OleDbConnection(connStr)
    myConn.Open()
    myUpdateCommand = New OleDbCommand(sqlStr, myConn)
    myUpdateCommand.ExecuteNonQuery()
    myConn.Close()
    dataGrid1.EditItemIndex = -1
    bindDataGrid()
    End Sub

    Sub updateDatabase(ByVal s As Object, ByVal e As DataGridCommandEventArgs)
    Dim myConn As OleDbConnection
    Dim connStr, sqlStr As String
    Dim myUpdateCommand As OleDbCommand
    Dim intPid As Integer
    Dim columnData As Date
    Dim columnSerata, columnArtista, columnTipoSerata, columnImgLocandina, columnWindows As String
    Dim columnView As String

    intPid = dataGrid1.DataKeys.Item(e.Item.ItemIndex)
    columnData = (CType(e.Item.Cells(2).Controls(0), TextBox)).Text
    columnSerata = (CType(e.Item.Cells(3).Controls(0), TextBox)).Text
    columnArtista = (CType(e.Item.Cells(4).Controls(0), TextBox)).Text
    columnTipoSerata = (CType(e.Item.Cells(5).Controls(0), TextBox)).Text
    columnImgLocandina = (CType(e.Item.Cells(6).Controls(0), TextBox)).Text
    columnView = (CType(e.Item.Cells(7).Controls(0), CheckBox).Text)
    columnWindows = (CType(e.Item.Cells(8).Controls(0), TextBox)).Text


    sqlStr = "UPDATE TBL_SERATE SET TBL_SERATE.DATA = #" & ConvertiData(columnData) & "#, TBL_SERATE.SERATA = '" & columnSerata.ToString & "', TBL_SERATE.ARTISTA = '" & columnArtista.ToString & "', TBL_SERATE.TIPO_SERATA = '" & columnTipoSerata.ToString & "', TBL_SERATE.IMG_LOCANDINA = '" & columnImgLocandina.ToString & "', TBL_SERATE.[VIEW] = " & columnView & ", TBL_SERATE.WINDOWS = '" & columnWindows.ToString & "' WHERE (((TBL_SERATE.ID)=" & intPid.ToString & "));"

    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("mdb-database/db.mdb")
    myConn = New OleDbConnection(connStr)
    myConn.Open()
    myUpdateCommand = New OleDbCommand(sqlStr, myConn)
    myUpdateCommand.ExecuteNonQuery()
    myConn.Close()
    dataGrid1.EditItemIndex = -1
    bindDataGrid()
    End Sub

    End Class
    Mungo Mauro

  5. #5

    Re: RE

    Originariamente inviato da fungo
    Ciao riccardone, ho provato ma niete da fare. Ti allego il codice gli dai un'occhiata ?
    non ho capito cosa intendi per niente da fare... cmq se stiamo parlando del problema di inserire una check box o un pulsante delete nella datagrid ti indico di seguito un esempio che ho fatto al volo copiando incollando e modificando parte del tuo codice. Per il resto, la datagrid e' una bestia di controllo nel senso che ha tantissime cose ma per padroneggiarla e' necessario molta pratica e teoria quindi ti invito a leggere e provare i vari codici di esempio che si trovano a partire dall'msdn.
    codice:
    <asp:DataGrid AutoGenerateColumns="False" CellPadding="4" DataKeyField="ID" Font-Name="Verdana"
    				Font-Size="8pt" ID="dataGrid1" runat="server" OnUpdateCommand="updateDataBase" OnEditCommand="setEditMode"
    				OnCancelCommand="cancelEdit" OnDeleteCommand="removeRS" BackColor="White" BorderColor="#CC9966"
    				BorderStyle="None" BorderWidth="1px" Font-Names="Verdana" style="Z-INDEX: 103; LEFT: 265px; POSITION: absolute; TOP: 179px">
    				<Columns>
    					<asp:ButtonColumn Text="Delete" CommandName="Delete"></asp:ButtonColumn>
    					<asp:TemplateColumn HeaderText="Nome del campo 1">
    						<ItemTemplate>
    							<asp:CheckBox id="CheckBox1" runat="server" Text=" " Enabled="False"></asp:CheckBox>
    						</ItemTemplate>
    						<EditItemTemplate>
    							<asp:CheckBox id="CheckBox2" runat="server" Text=" "></asp:CheckBox>
    						</EditItemTemplate>
    					</asp:TemplateColumn>
    					<asp:BoundColumn DataField="nomecampo2" SortExpression="nomecampo2" HeaderText="Nome del campo 2"></asp:BoundColumn>
    				</Columns>
    			</asp:DataGrid>
    Saluti a tutti
    Riccardo

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.