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

    datagrid e editcommandcomun ..

    Mi dà questo errore:
    "Item" non è un membro di "System.Web.UI.WebControls.DataGridSortCommandEven tArgs

    riga:clienti.edititemindex = e.Item.itemindex
    Come mai?
    codice:
    <%@ Page Language="VB" %>
    <%@ import Namespace="System.data.oleDb" %>
    <%@ import Namespace="System.data" %>
    <script runat="server">
    
        Sub Page_Load(src As Object, e As EventArgs)
    
             if not ispostback then
            ordina("nome")
            end if
    
          end sub
    
    
         sub ordina (campo as string )
         dim cmd as oledbcommand
             dim dtr as oledbdatareader
             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")
             myConn= New OleDbConnection(connStr)
             myConn.Open()
             sqlstr="select * from clienti order by " & campo
             cmd=new oledbcommand( sqlstr,myconn)
             dtr= cmd.executereader()
             clienti.datasource=dtr
             clienti.databind()
             dtr.close()
             myconn.close()
         end sub
    
         sub seleziona (s as object ,e as datagridsortcommandeventargs )
         ordina (e.sortexpression)
         end sub
    
         sub clenti_editcommand  (s as object ,e as datagridsortcommandeventargs )
         clienti.edititemindex = e.Item.itemindex
         ordina("nome")
         end sub
    
    
    </script>
    <html>
    <head>
    </head>
    <body>
        <form runat="server">
            <asp:DataGrid id="clienti"
            oneditcommand="clenti_editcommand"
             runat="server" AutoGenerateColumns="False" OnSortcommand="seleziona" CellPadding="10" AllowSorting="True" >
                <Columns>
                    <asp:BoundColumn DataField="nome" HeaderText="nome" />
                    <asp:EditCommandColumn UpdateText="aggiorna" CancelText="cancella" EditText="Edit!" />
                </Columns>
            </asp:DataGrid>
        </form>
    </body>
    </html>

  2. #2
    Prova così:

    codice:
         sub clenti_editcommand  (s as object ,e as DataGridCommandEventArgs )
         clienti.edititemindex = e.Item.itemindex
         ordina("nome")
         end sub
    www.radiana.it - Spartiti musicali e Mp3

  3. #3
    Grazie per la risposta.
    Sai dirmi come recuperare i valori per fare poi l'update?
    mi da errore qua:
    Riga 52: clinome=e.item.cells.(1) e mi dice è previsto un identificatore.
    Come posso fare a recuperare i valori del datagrid per fare poi l'upload?

    codice:
     <%@ Page Language="VB" %>
    <%@ import Namespace="System.data.oleDb" %>
    <%@ import Namespace="System.data" %>
    <script runat="server">
    
    dim cmd as oledbcommand
             dim dtr as oledbdatareader
             Dim myConn As OleDbConnection
             Dim myOleDbAdapter As OleDbDataAdapter
             Dim connStr, sqlStr As String
             Dim myDataSet As New Dataset
        Sub Page_Load(src As Object, e As EventArgs)
    
    
    
    connStr="Provider=Microsoft.Jet.OLEDB.4.0;" _
             +"Data Source="+Server.MapPath("/mdb-database/db.mdb")
             myConn= New OleDbConnection(connStr)
             if not ispostback then
            ordina("nome")
            end if
    
          end sub
    
    
         sub ordina (campo as string )
    
    
             myConn.Open()
             sqlstr="select * from clienti order by " & campo
             cmd=new oledbcommand( sqlstr,myconn)
             dtr= cmd.executereader()
             clienti.datasource=dtr
             clienti.databind()
             dtr.close()
             myconn.close()
         end sub
    
         sub seleziona (s as object ,e as datagridsortcommandeventargs )
         ordina (e.sortexpression)
         end sub
    
         sub modifica (s as object ,e as datagridcommandeventargs )
         clienti.EditItemIndex = e.Item.Itemindex
         ordina ("nome")
         end sub
    
         sub aggiorna (s as object ,e as datagridcommandeventargs )
         dim clinome as textbox
         dim idcliente as integer
         idcliente= clienti.datakeys (e.item.itemindex)
         clinome=e.item.cells.(1)
         sqlstr ="update clienti set nome='" & clinome.text & " where idcliente=" & idcliente
         myConn.Open()
         cmd=new oledbcommand( sqlstr,myconn)
         dtr= cmd.executereader()
         clienti.datasource=dtr
         clienti.databind()
         dtr.close()
         myconn.close()
         ordina ("nome")
         end sub
    
    
    
    </script>
    <html>
    <head>
    </head>
    <body>
        <form runat="server">
            <asp:DataGrid id="clienti" runat="server"  CellPadding="10" OnSortcommand="seleziona" AutoGenerateColumns="False" onupdatecommand="aggiorna" oneditcommand="modifica">
                <Columns>
                <asp:BoundColumn DataField="idcliente" HeaderText="idcliente" />
                    <asp:BoundColumn DataField="nome" HeaderText="nome" />
                    <asp:EditCommandColumn UpdateText="aggiorna!" CancelText="cancella" EditText="Edit!" />
                </Columns>
            </asp:DataGrid>
        </form>
    </body>
    </html>

  4. #4
    Dacci un'occhiata. Questa è la Sub:

    codice:
    Sub aggiorna(sender As Object, e As DataGridCommandEventArgs)
          dim clinome as textbox
          dim idcliente as integer
          dim sqlstr as string
          Dim myConn As OleDbConnection
          dim cmd as oledbcommand
          dim connStr as string
    
    
         idcliente= clienti.datakeys (e.item.itemindex)
         clinome=e.item.cells(0).Controls(0)
    
         connStr="Provider=Microsoft.Jet.OLEDB.4.0;" _
         +"Data Source="+Server.MapPath("Authors.mdb")
         myConn= New OleDbConnection(connStr)
         sqlstr ="update Authors set Au_Fname='" & clinome.text & "' where Au_Id=" & idcliente
         myConn.Open()
         cmd=new oledbcommand( sqlstr,myconn)
         cmd.executenonquery()
         clienti.datasource=cmd.ExecuteReader()
         clienti.databind()
         myconn.close()
    
         clienti.EditItemIndex=-1
         ordina ("Au_fname")
    
        End Sub
    E questo il datagrid:
    codice:
    <asp:DataGrid id="clienti" runat="server" onupdatecommand="aggiorna" oneditcommand="clenti_editcommand" AutoGenerateColumns="False" OnSortcommand="seleziona" CellPadding="10" AllowSorting="True" DataKeyField="Au_Id">
                <Columns>
                    <asp:BoundColumn DataField="Au_fname" HeaderText="nome"></asp:BoundColumn>
                    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="aggiorna" CancelText="cancella" EditText="Edit!"></asp:EditCommandColumn>
                </Columns>
            </asp:DataGrid>
    C'era qualche errore. Se non capisci chedi pure.

    P.S.: ho cambiato i dati del database per provarlo su uno mio.

    www.radiana.it - Spartiti musicali e Mp3

  5. #5
    grazie mille così ho capito tutto e mi funziona.

    TI chiedo se hai il tempo di dirmi se si può ( e come) a realizzare Si può inserire un dropdownlist all'interno del datagrid quando si modifica invece del capo di testo? ( prendendo anche le opzioni da selezionare da un database)

    Grazie ancora

  6. #6
    Utente di HTML.it L'avatar di Ottavio
    Registrato dal
    Jul 2000
    Messaggi
    286

    mi intrometto io...

    <asp:TemplateColumn HeaderText="Tipo Prodotto" HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="30">
    <ItemTemplate>
    <asp:Label id="lblTipoProdotto" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "TipoProdotto") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <aspropDownList id="cboTipoProdotto" runat="server" ></aspropDownList>
    <asp:RequiredFieldValidator id="Requiredfieldvalidator4" ControlToValidate="cboTipoProdotto" Display="Dynamic" Font-Name="Verdana" Font-Size="8" ErrorMessage="
    Campo Obbligatorio" runat="server"></asp:RequiredFieldValidator>
    </EditItemTemplate>
    </asp:TemplateColumn>



    sulla modifica fai :
    cboTipoProdotto.SelectedIndex = cboTipoProdotto.Items.IndexOf(cboTipoProdotto.Item s.FindByText(lblTipoProdotto.Text))
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    Era un mondo adulto, si sbagliava da professionisti....
    <P.Conte>
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

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.