39 messaggi dal 17 aprile 2017
Salve a tutti.........
Allora spiego brevemente il problema (trito e ritrito)
Ho una gridview in cui seleziono dei record, successivamente di questi record devo visualizzare il dettaglio di ogni riga.....
Inizio a postare il codice della pagina aspx, chiedendo umilmente di dirmi cosa manca per completare la funzione....
Poi passeremo alla parte vb.net.......
Ma andiamo per gradi


<asp:HyperLinkField DataNavigateUrlFields="DescRichiesta" DataNavigateUrlFormatString="Dettaglio_Chiamate.aspx?sup={0}" ShowHeader="False" Target="_blank" Text="Dettaglio" />

166 messaggi dal 09 febbraio 2017
Io ho implementato una colonna in più nella grid view che linka ad un altra pagina, chiamata dettagli e in quella pagina ci carico una details view (invece che ancora una grid view) e ci passo l' id del item tramite request id dal url , cosi al click apre il dettaglio appunto di quel item.

E' quello che stavi cercando ?

Emanuel Pirovano
Web Developer
3.939 messaggi dal 28 gennaio 2003
Ema96Arpa ha scritto:
Io ho implementato una colonna in più nella grid view che linka ad un altra pagina, chiamata dettagli e in quella pagina ci carico una details view (invece che ancora una grid view) e ci passo l' id del item tramite request id dal url , cosi al click apre il dettaglio appunto di quel item.

E' quello che stavi cercando ?



anch'io faccio esattamente come detto da Ema96Arpa

solo a titolo di esempio, usando un semplice <a

<a href="#" onclick="apri_pagina('<%#Eval("id_provincia") %>');return false;">apri pagina</a>

dove apri_pagina è una funzione javascript che apre un popup inviando parametri via post o get

carino, se la pagina lo permette, è usare ajax. Lo stesso link richiama la stessa funzione che però fa una richiesta ajax
39 messaggi dal 17 aprile 2017
Bravissimo Ema hai capito esattamente quello che devo fare.
Infatti come avrai notato questa e' la colonna in piu' che ha come campo "Dettaglio" e mi apre una pagina che si chiama "Dettaglio_Chiamate.aspx"..........



in quella pagina ci carico una details view (invece che ancora una grid view) e ci passo l' id del item tramite request id dal url , cosi al click apre il dettaglio



Come faccio???...........
166 messaggi dal 09 febbraio 2017
Perfetto, è perfetto questo procedimento ed utilissimo.
Cerco di spiegartelo brevemente :
Questo è l' html della colonna che linka ai dettagli, nel mio caso id, nel tuo caso dettagli appunto
                <asp:HyperLinkField DataNavigateUrlFields="ID" 
                    DataNavigateUrlFormatString="NomePagina.aspx?ID={0}" DataTextField="ID" 
                    HeaderText="Vedi dettagli" Text="ID" />


Devi modificare "NomePagina.aspx" e "ID" , sostituendo la variabile che vuoi passare nella pagina successiva, dove poi la riprenderai appunto per caricarci il dettaglio.
Facendo cosi abbiamo detto, passiamo ID alla pagina successiva, ora, come recuperiamo questo valore ?
Nel page load, chiedendo di popolare la grid view, associata nel mio caso ad un database, dei dettagli di quello specifico ID (chiave primaria) .
Per popolare una grid view view, lo avrai già fatto in precedenza se sei arrivato a qui, ti posto la sintassi della mia query nella pagina dettagli per farti capire :

 SqlDataSource1.SelectCommand = "SELECT ID, NomeProdotto, DescrizioneProdotto, PrezzoProdotto,DataInserimento, DataScadenza, Data, Quantità FROM aProdotti WHERE id=" + Request.QueryString("ID").ToString


Popolare una Details View è la stessa identica cosa di una grid view, cambia solo l' oggetto nella finestra di progettazione.

Questi sono i passaggi semplici che devi fare, ho scritto solo quello che è necessario , dando per scontato appunto come popolare grid view ecc, prova e facci sapere come va.

Buona giornata,

Emanuel

Emanuel Pirovano
Web Developer
39 messaggi dal 17 aprile 2017
Ho fatto cosi:

Pagina ASP:

        
<div style ="height:500px; width:917px; overflow:auto;">
            <asp:GridView ID="dgrStoricoChiamate" runat="server" AutoGenerateColumns = "false" Font-Names = "Arial" ShowHeader = "false" Font-Size = "11pt" AlternatingRowStyle-BackColor = "#C2D69B" >
                <Columns>
                    <asp:BoundField ItemStyle-Width = "150px" DataField = "RagSociale" ReadOnly="True"/>
                    <asp:BoundField ItemStyle-Width = "150px" DataField = "Data" ReadOnly="True"/>
                    <asp:BoundField ItemStyle-Width = "300px" DataField = "Modello" ReadOnly="True"/>
                    <asp:BoundField ItemStyle-Width = "300px" DataField = "DescRichiesta" ReadOnly="True"/>
                    <asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="Dettaglio_Chiamate.aspx?sup={0}" ShowHeader="False" Target="_blank" Text="Dettaglio"/>
                </Columns> 
            </asp:GridView>
        </div>


Pagina dove deve apparire il dettaglio codice vb:


If Not IsPostBack Then
            Dim strConnString As String = ConfigurationManager.ConnectionStrings("chiamateConnectionString1").ConnectionString
            Dim strQuery As String = "select ID, RagSociale, Indirizzo, Civico, Citta, Cap, Provincia from tbChiamate WHERE id=" + Request.QueryString("ID").ToString
            Dim con As New SqlConnection(strConnString)
            Dim cmd As New SqlCommand()
            'cmd.Parameters.AddWithValue("@CustomerID", DropDownList1.SelectedItem.Value)
            cmd.CommandType = CommandType.Text
            cmd.CommandText = strQuery
            cmd.Connection = con
            Try
                con.Open()
                Dim sdr As SqlDataReader = cmd.ExecuteReader()
                While sdr.Read()
                    txtRagSociale.Text = sdr(1).ToString()
                    txtIndirizzo.Text = sdr(2).ToString()
                    txtCivico.Text = sdr(3).ToString()
                    txtCap.Text = sdr(5).ToString()
                    txtCitta.Text = sdr(4).ToString()
                    txtProvincia.Text = sdr(6).ToString()
                    'txtTelefono.Text = sdr(6).ToString()
                    'txtEMail.Text = sdr(7).ToString()


                    'lblCountry.Text = sdr("ComuneFiscale").ToString()

                End While
            Catch ex As Exception
                Throw ex
            Finally
                con.Close()
                con.Dispose()
            End Try
        End If



....e mi ritorna questo errore:

Riferimento a un oggetto non impostato su un'istanza di oggetto.

Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere la traccia dello stack.

Dettagli eccezione: System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.

Errore nel codice sorgente:

Riga 10:         If Not IsPostBack Then
Riga 11:             Dim strConnString As String = ConfigurationManager.ConnectionStrings("chiamateConnectionString1").ConnectionString
Riga 12:             Dim strQuery As String = "select ID, RagSociale, Indirizzo, Civico, Citta, Cap, Provincia from tbChiamate WHERE id=" + Request.QueryString("ID").ToString
Riga 13:             Dim con As New SqlConnection(strConnString)
Riga 14:             Dim cmd As New SqlCommand()

File di origine: C:\Chiamate\Dettaglio_Chiamate.aspx.vb    Riga: 12 
166 messaggi dal 09 febbraio 2017
Dettaglio_Chiamate.aspx?sup={0}"


Perchè "sup" ? Se la variabile è sup allora sostituiscila a ID che hai messo dalle altre parti o viceversa.

L' errore te lo da al click del hyperlink ?
Modificato da Ema96Arpa il 18 maggio 2017 08.58 -

Emanuel Pirovano
Web Developer
39 messaggi dal 17 aprile 2017
Funzionaaaaaaaaaaa!!!!!!!

Bravissimo Ema96Arpa, grazie, grazie, grazie.

Perfetto centrato in pieno lo scopo.

Alla prossima

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.