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

    Data Grid non ho capito :(

    Salve a tutti.
    Premetto di essere ancora all'abc su .net ; il mio problema riguarda come ricavare il contenuto di una text box inserito all'interno di un DataGrid.
    Mi spiego meglio : Utilizando i controlli integrati di editing in un DataGrid volevo fare in modo che all'evento aggiurna andasse ad aggiornare il db con i dati contenuti nella Linea di editing selezionata , ma non riesco a fare in modo di ricavare il valore attualmente presente nelle text box ... quando vado a leggere il valore del controllo text box mi restituisce il valore che era presente al caricamento della pagina ......

    In pratica credo di utilizare il metodo sbagliato per ottenere il valore dei data grid appena editati .

    ora posto il codice :

    (questa è la procedura associata all'evento di aggiornamento )


    Sub aggiorna(ByVal objSource As Object, ByVal objArgs As DataGridCommandEventArgs)
    Dim pdndocumeto, pdsdocumento, ppdsdocumento As TextBox
    '(CType(FindControl(TXTdndocumeto) , TextBox).Text() = !

    pdndocumeto = CType(objArgs.Item.FindControl("txtdndocumeto"), TextBox)
    pdsdocumento = CType(objArgs.Item.FindControl("Txtdsdocumento"), TextBox)
    ppdsdocumento = CType(objArgs.Item.Cells(2).Controls(1), TextBox)

    Dim strConnect = "Persist Security Info=False;User ID=sa;Initial Catalog=ServDOC;Data Source=2KTHOR"
    Dim Conn As New SqlConnection(strConnect)

    Dim strSQL As String


    strSQL = "UPDATE DDocumenti SET dndocumeto='" & pdndocumeto.Text & "', " _
    & "dsdocumento='" & pdsdocumento.Text & "' " _
    & "WHERE id_documento= " & DataGrid1.DataKeys(DataGrid1.EditItemIndex)
    'stringa di conn
    Dim CCommand As New SqlCommand(strSQL, Conn)

    CCommand.Connection.Open()
    CCommand.ExecuteNonQuery()
    DataGrid1.EditItemIndex = -1
    BindDataGrid()
    End Sub

    Questa e' la dichiarazione della Griglia )


    <ASPATAGRID id="DataGrid1" runat="server" EditItemIndex="0" AllowSorting="True" AllowPaging="True" GridLines="Vertical" BorderColor="#999999" BackColor="White" CellPadding="3" BorderWidth="1px" BorderStyle="None" AutoGenerateColumns="False" OnCancelCommand="Annulla" OnUpdateCommand="aggiorna" OnEditCommand="modifica" DataKeyField="id_documento">
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
    <EditItemStyle Font-Size="Medium"></EditItemStyle>
    <AlternatingItemStyle BackColor="#DCDCDC"></AlternatingItemStyle>
    <ItemStyle ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#000084"></HeaderStyle>
    <FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
    <Columns>
    <asp:BoundColumn DataField="id_documento" ReadOnly="True" HeaderText="Index"></asp:BoundColumn>
    <ASP:TemplateColumn HeaderText="Titolo">
    <ItemTemplate>
    <ASP:Label Text='<%# Container.DataItem("dndocumeto") %>' runat="server" ID="Label1"/>
    </ItemTemplate>
    <EditItemTemplate>
    <ASP:TextBox id="txtdndocumeto" Text='<%# Container.DataItem("dndocumeto") %>' runat="server" />
    </EditItemTemplate>
    </ASP:TemplateColumn>
    <ASP:TemplateColumn HeaderText="Descrizione Documento">
    <ItemTemplate>
    <ASP:Label Text='<%# Container.DataItem("dsdocumento") %>' runat="server" ID="Label2"/>
    </ItemTemplate>
    <EditItemTemplate>
    <ASP:TextBox id="Txtdsdocumento" Text='<%# Container.DataItem("dsdocumento") %>' runat="server" />
    </EditItemTemplate>
    </ASP:TemplateColumn>
    <asp:BoundColumn DataField="Path_Documento" HeaderText="Locazione Documento"></asp:BoundColumn>
    <asp:BoundColumn DataField="dnTipoDocumento" HeaderText="Tipo Documento"></asp:BoundColumn>
    <asp:ButtonColumn Text="Seleziona" CommandName="Select"></asp:ButtonColumn>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Aggiorna" CancelText="Annulla" EditText="Modifica"></asp:EditCommandColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
    </ASPATAGRID>
    Datemi tempo che poi me la faccio una firma ; )

  2. #2
    Boo!

    Ciao!
    Think global, act local.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Originariamente inviato da index
    Boo!

    Ciao!
    Una spiegazione convincente!

    Perfavore evitiamo questo genere di post.

    Hey hey, my my Rock and roll can never die!

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Tornando al thread.

    Potrebbe essere un problema di postback. Mi spiego meglio.
    Quando carichi una pagina viene eseguito l'evento "Page_Load", nel quale tu probabilmente hai inserito il codice per popolare il Datagrid.
    Poniamo tu abbia un pulsante che richiama l'evento "MyBtt1_Click".
    Quando premi il pulsante prima di eseguire l'evento "MyBtt1_Click" viene eseguito l'evento "Page_Load", quindi i dati inseriti dall'utente vengono sostituiti con quelli prelevati dal database che usi per popolare il datagrid. Per ovviare a questo problema basta che usi questo codice nell'evento "Page_Load"

    codice:
    If Not Page.IsPostBack Then
       'Codice che popola il Datagrid
    End If

    Hey hey, my my Rock and roll can never die!

  5. #5
    :mavieni: Grazie Mille ora funziona tutto per il meglio !

    Grazie ancora
    Datemi tempo che poi me la faccio una firma ; )

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    332

    scusate se arrivo tardi

    io sono nella stessa situazione, ma ho il problema che la Grid e' molto lunga e quando clicco sul link button, per aggiornare il TextBox il PostBack della pagina mi riporta all'inizio pagina !
    Come faccio a riposizionarmi l'addove devo inserire un valore nel DataGrid ?

    qualsiasi suggerimento e' ben accetto.
    Grazie.

  7. #7
    potresti inserire degli anchor <a name=rigaN> dove N è un numero che genera il codice mano mano che le scrive le righe (magari è l'ID del record), poi nell'evento di edit, fai aggiungere all'url il #rigaN dove N è l'ID del record e dovrebbe farlo riposizionare dove c'è stata la modifica... O ALMENO CREDO....

    Diciamo che questo mio ragionamento è solo teorico, ma dovrebbe funzionare...

    Alex

  8. #8
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Originariamente inviato da tritolo86
    potresti inserire degli anchor <a name=rigaN> dove N è un numero che genera il codice mano mano che le scrive le righe (magari è l'ID del record), poi nell'evento di edit, fai aggiungere all'url il #rigaN dove N è l'ID del record e dovrebbe farlo riposizionare dove c'è stata la modifica... O ALMENO CREDO....

    Diciamo che questo mio ragionamento è solo teorico, ma dovrebbe funzionare...

    Il tuo ragionamento è giusto, e funziona. Purtroppo però sui sistemi Mac fa cilecca, e la pagina sfarfalla trasformando il monitor in una luce stroboscopica

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.