Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117

    ItemDataBound e somma colonne

    Ho un datagrid che contiene dei valori mensili

    descrizione - gen - feb - mar - apr...
    dsa - 100 - 20 - -
    das - 50 - 10 - 100 -50

    come posso aggiungere, in fondo al datagrid, una nuova riga con la somma della colonna mensile (dalla 1 alla 12 ... zero based), ed un progressivo di tutti i mesi?



    protected void MyDataGrid_OnItemDataBound(object sender,
    DataGridItemEventArgs e)

    {

    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
    ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.EditItem)


    {

    e.Item.Attributes["onmouseover"] = "this.style.backgroundColor='#AAAAAA';";

    e.Item.Attributes["onmouseout"] = "this.style.backgroundColor='#DEDFDE';";



    // devo inserie qui ....???



    }

    }


    Grazie per l'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    per la somma della colonna, leggi questo articolo

    http://aspalliance.com/494

    Sta attenta che il codice non è proprio corretto, va un pò sistemato

  3. #3

    Re: ItemDataBound e somma colonne

    Originariamente inviato da valeria75
    come posso aggiungere, in fondo al datagrid, una nuova riga con la somma della colonna mensile (dalla 1 alla 12 ... zero based), ed un progressivo di tutti i mesi?
    Per ottenere la somma dei valori puoi ricorrere alla comoda funzione Compute della datatable es. tuadatatable.compute("Sum(gen)", "")
    Saluti a tutti
    Riccardo

  4. #4
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    ma una volta che calcolo il valore

    tuadatatable.compute("Sum(gen)", "")

    come lo visualizzo nel datagrid?

  5. #5
    Originariamente inviato da valeria75
    come lo visualizzo nel datagrid?
    Nell'articolo che ti ha consigliato hankmccoy si parla proprio di questo. Viene appunto detto che se ti accontenti di visualizzare il totale in maniera separata (es. in una label) puoi usare compute mentre se vuoi mettere dinamicamente il totale nel footer puoi agire sull'evento itemdatabound.
    Aggiungerei che puoi anche mettere in tante proprieta' pubbliche (o in un array) i risultati della funzione compute eseguita sulle varie colonne. Metti nel footer della grid delle label che avranno come fonte dati le suddette proprieta'.
    Saluti a tutti
    Riccardo

  6. #6
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    allora, ho capito che non posso seguire questa strada in quanto le colonne del datagrid (quindi i mesi) li genero da codice per il datagrid, quindi devo trovare un'altro modo per sommare ogni singola colonna del mio datagrid....




    quindi ho provato a fare:

    if(e.Item.ItemType != ListItemType.Header)


    {

    e.Item.Cells[3].Text ;

    }



    è giusto??



    mi sembra di aver capito che recupero il valore della prima riga

    ma per sommare tutte le righe di ogni singola colonna?


    ..... e successivamente visualizzarle

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    utilizzando il l'artico che ti ho suggerito il codice da utilizzare è questo
    Nel datagrid abiliti il footer

    codice:
    dim interim
    Sub grid_ItemDataBound(ByVal sender As System.Object,ByVal e As DataGridItemEventArgs)
    Select Case e.Item.ItemType
           Case ListItemType.Item, ListItemType.AlternatingItem
           interim += CType((e.Item.Cells(5).Text), Double)
           Case ListItemType.Footer
           e.Item.Cells(5).Text = interim
    End Select
    End Sub

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.