31 messaggi dal 27 agosto 2002
Come ricavare la percentuale di un dato presente su riga del datagried rispetto al totale di una colonna
in pagina aspx e visualizzarlo sulla riga di riferimento?
635 messaggi dal 11 febbraio 2013
Nell evento rowdatabound puoi calcolare e visualizzare i dati

Vedi qui come spunto

https://www.aspsnippets.com/Articles/Dynamically-change-GridView-Cell-value-using-RowDataBound-event-in-ASPNet-using-C-and-VBNet.aspx
31 messaggi dal 27 agosto 2002
Grazie per la risposta, pero non è quello che cercavo.

Ipotizzando una tabella con Id, voti, quantità per ogni record (riga) A, b, c, ecc. devo ricavare a fianco di quantità,in una nuova colonna,- la percentuale di ogni dato Quantità della riga rispetto al totale Quantità.... che ad ogni incremento di record aggiorna ovviamente la percentuale..... in una pagina aspx che utilizza vb


Questo è il problema.
3.798 messaggi dal 28 gennaio 2003
scusa, giusto per capire, tu vuoi che, per ogni record venga mostrata
(quantita/sum(quantita))*100

Pietro
31 messaggi dal 27 agosto 2002
grazie per la tempestiva risposta.

Si.
3.798 messaggi dal 28 gennaio 2003
Allora, se questo è vero, non conviene lavorare sul visualizzatore dati, qualunque esso sia; ma sulla fonte dati.
In altri termini, o lavori sull'sql del database, o sul DataTable, oppure puoi usare pure linq.

Solo a titolo di esempio, in oracle si può fare:
SELECT ID, CAMPO, ROUND(RATIO_TO_REPORT(CAMPO) OVER () * 100) AS PERCENTUALE FROM TABELLA;

se hai un dataTable puoi fare una cosa del genere

Dim dt As DataTable = ora.GetDataTable(gl.StringaConnessione, "select id, campo from tabella")

Dim somma As Double = CDbl(dt.Compute("sum(campo)", Nothing))
Me.Label1.Text = "somma = " & somma.ToString

Dim c As New DataColumn("PERCENTUALE", GetType(Double), String.Format("campo / {0} * 100", somma))
dt.Columns.Add(c)

Pietro
635 messaggi dal 11 febbraio 2013
Se usi il model binding con un selectmethod fare campi calcolati è anche piu semplice
in un progetto dovevo calcolare delle differenze

 <asp:TemplateField HeaderText="Qta disponibile" ItemStyle-BackColor="#FFFF99">
                <ItemTemplate >
                    <%# Item.Qta_a_stock  - 
                            Item.Qta_entrata_non_trasmessa - 
                            Item.Qta_uscita_non_trasmessa - 
                            Item.Qta_in_corso_di_entrata - 
                            Item.Qta_in_corso_di_uscita - 
                            Item.Qta_OC_da_preparare - 
                            Item.Qta_OC_in_preparazione - 
                            Item.Qta_OC_in_spedizione + 
                            Item.Qta_EA_da_ricevere%>
                </ItemTemplate>
            </asp:TemplateField>
31 messaggi dal 27 agosto 2002
sinceramente non ho capito......

Uso visual web developer 2010 e costruisco le tabelle "Gridview" tramite tale applicazione.... utilizzando Access.....arrivando ad avere nel "footer" (pagina.aspx.vb) i totali delle colonne.....non riesco a creare una colonna che prenda il totale di una riga, esempio voti, determinando il suo peso percentuale sul totale di voti della colonna....

Che fare?

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.