Visualizzazione dei risultati da 1 a 8 su 8

Discussione: GridView Unire Colonne

  1. #1

    GridView Unire Colonne

    Ciao,


    Io ho una tabella che che estraggo dal database tramite una query, le colonne estratte variano dai 10 a 100, a seconda se alcuni risultati danno 0 o no...

    Su ogni colonna effettuo dei conteggi, e per ogni colonna estratta ne creo 4 con le voci:

    Nome Colonna Dato Originale | Nome Colonna Data 25% | Nome Colonna Dato Somma | Nome Colonna Dato x |



    Volevo sapere come potevo unire le 4 colonne, magari aggiungendo un'ulteriore riga di intestazione del tipo


    | Nome Colonna |
    Dato originale | Data 25% | Dato Somma | Colonna Dato
    -----------------------------------------------------------
    record1 | | | |
    record2 | | | |



    Io avevo pensato di trasformarlo in questo modo per renderlo più presentabile, qualcuno sa dirmi come posso fare, o suggermirmi una soluzione migliore?



    Grazie

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    La mia non è la risposta che cerchi, credo.
    Io abbandonerei subito questo vecchio controllo e comporrei tutto l'html a mano.

    E' una cosa estremamente facile da farsi ed è la soluzione più veloce per il server.
    Basta comporre il tutto dentro uno StringBuilder e mettere il risultato in un litteral.

    Pietro

  3. #3
    Purtroppo il datagrid è collegato ad un'altro datagrid con uno script in ajax ed un treeview, è una cosa un pò complicata purtroppo, e se tolgo il datagrid dovrei fare troppi cambiamenti nel codice...

  4. #4
    Originariamente inviato da pietro09
    La mia non è la risposta che cerchi, credo.
    Io abbandonerei subito questo vecchio controllo e comporrei tutto l'html a mano.

    E' una cosa estremamente facile da farsi ed è la soluzione più veloce per il server.
    Basta comporre il tutto dentro uno StringBuilder e mettere il risultato in un litteral.

    Sto seriamente pensando di crearmi la tabbella manualmente, però ho dei dubbi..

    Purtroppo questa datagrid è molto complessa, perchè deve rispondere anche ai click sui record, infatti se a qualche record è associata una sottocategoria, la datagrid ri ricaricava e mi mostrava i dati presenti nella sottocategoria...

    Faccio un esempio, perchè non credo di essermi spiegato bene:


    Record 1
    -------
    Record 2
    --------
    Record 3


    Se io clicco su record1 mi mostra le sottocategoria e diventa:

    Record 1
    |__
    Record 1a
    Record 1b
    ecc....
    -----------
    Record 2
    -----------
    Record 3



    E' possibile fare una cosa del genere tramite la creazione manuale?

    Purtroppo questa tabella è molto complessa, per ottenere questa cosa ho fatto un databind su un datatable che ha già i pivot per le sottocategorie, e dopo ho lavorato con il databound per ottenere il resto...

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    prova a sperimentare con una griglietta semplice.
    Per fare il postback e ricavare le sottocategorie, basta mettere un link che chiama la stessa pagina passando l'id del record.
    Nell'evento load si intercetta il parametro passato e si richiama la procedura opportuna.

    Pietro

  6. #6
    Ok, adesso vedo cosa riesco a fare...

    Originariamente inviato da pietro09
    Io abbandonerei subito questo vecchio controllo e comporrei tutto l'html a mano.
    Una piccola curiosità, non è la prima volta che mi viene sconsigliato l'utilizzo di una gridview, perchè è tanto odiata?

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da SkOrPiOn`87
    Ok, adesso vedo cosa riesco a fare...



    Una piccola curiosità, non è la prima volta che mi viene sconsigliato l'utilizzo di una gridview, perchè è tanto odiata?
    Parti da un punto di vista sbagliato.

    Un controllo server serve per produrre html in modo più veloce.
    Se lo si usa per i fini con cui è progettato si ottengono, qualche volta, dei vantaggi.
    Altrimenti ci sono due possibilità: o si complica in modo abnorme il codice per ottenere i comportamenti voluti, o lo si abbandona e si cercano altre strade.

    Ad esempio, per visualizzare una tabella a scopo di debug ho usato queste 4 righe di codice con un GridView e funziona benissimo
    codice:
    Dim gv As New GridView()
    Dim sql As String = "SELECT ..."
    msora.DataBind(gv, gl.StringaConnessione, sql, New String() {"id"})
    
    Me.PlaceHolder1.Controls.Add(gv)
    In altri casi più reali, uso il ListView.
    Se il ListView non va bene, lo lascio e faccio a mano.

    Ossia, usare lo strumento giusto al momento giusto.
    Pietro

  8. #8
    Dopo tante ricerche ho trovato questo http://marss.co.ua/MergingGridViewHeaderColumns.aspx

    A me sembra che sia proprio quello che serve a me...


    Inoltre dice:
    Columns can be defined in design time or can be auto generated - it does not matter and doesn't influence the further code. Merging also does not harm sorting and paging if they are used in the GridView/DataGrid.

    Questa cosa mi permette di aggiorare anche il mio problema di non poter sapere fino a quando faccio il databind, quante colonne avrà la mia tabella..


    Giusto?

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.