Como sumar un valor total de una columna de un ListView en asp.net

Me podrían ayudar alguien necesito sumar el valor total de una columna desplegada en un ListView.

1 Respuesta

Respuesta
3

Suponiendo que en el ListView has enlazado la columna que quieres sumar (en este ejemplo 'Quantity'):

<asp:ListView ID="ListView1" runat="server" OnItemDataBound="ListView1_OnItemDataBound">
  <ItemTemplate>
    Id: <asp:Label ID="lblId" runat="server" Text='<%#Eval("Id") %>'/>
    Quantity: <asp:Label ID="lblQuantity" runat="server" Text='<%#Eval("Quantity") %>'/>
    <br/>
  </ItemTemplate>
</asp:ListView>
Total: <asp:Label runat="server" ID="lblTotal"/>

Puedes añadir el evento OnItemDataBound en el que obtienes el valor del control y lo vas sumando en una variable.

        private int total = 0;      
        protected void ListView1_OnItemDataBound(object sender, ListViewItemEventArgs e)
        {
            if (e.Item.ItemType == ListViewItemType.DataItem)
            {
                var lblQuantity = (Label)e.Item.FindControl("lblQuantity");
                total += Convert.ToInt32(lblQuantity.Text);
            }
        }
        protected override void OnPreRenderComplete(EventArgs e)
        {
            lblTotal.Text = total.ToString();
            base.OnPreRenderComplete(e);
        }

Hola muchas gracias por el aporte... Necesito saber si puedo hacer una suma total pero fuera del ListView como se muestra en la imagen. El código lo tengo de la siguiente forma ya que estoy haciendo una consulta de sql a mi tabla:

<asp:ListView ID="lvMantenimentoVentas" runat="server" DataSourceID="odsMantenimientoVentas">
<LayoutTemplate>
<tbody ID="itemPlaceholder" runat="server" style="border-top:1px solid Gray;"></tbody>
</LayoutTemplate>
<ItemTemplate>
<tr align="center" class="bodyTable" >
<td>
<asp:CheckBox ID="cbSelectItem" runat="server"/>
<asp:HiddenField ID="hfId" runat="server" Value='<%# Eval("Delivery_ID") %>' />
<asp:HiddenField ID="hfTransaccion" runat="server" Value='<%# Eval("Transaction_ID") %>' />
<asp:HiddenField ID="hfDocumen" runat="server" Value='<%# Eval("DOC_TIPO_ID") %>' />
<asp:HiddenField ID="hfSricode" runat="server" Value='<%# Eval("SRI_Code") %>' />
<asp:HiddenField ID="hfautoriza" runat="server" Value='<%# Eval("Number_Autorization") %>' />
</td>

<td>
<%# Eval("Attendant_Name")%>
</td>
<td>
<%# Eval("Delivery_ID")%>
</td>

<td>
<%# Eval("SRI_Code")%>
</td>
<td>
<%# Eval("Transaction_ID")%>
</td>

<td>
<%# Eval("Number_Autorization")%>
</td>
<td>
<%# Eval("Completed_TS", "{0:" + Utilidades.GetFormatDateAndTime + "}")%>
</td>

<td>
<%# Eval("Payment_Name")%>
</td>
<td>
<%# Eval("Pump_ID")%>
</td>
<td>
<%# Eval("Hose_ID")%>
</td>
<td>
<%# Eval("Grade_Name")%>
</td>

<td>
<%# Eval("Volumen")%>
</td>
<td>
<%# Eval("Sale_Price")%>
</td>
<td>
<%# Eval("Tax")%>
</td>

<td>
<%# Eval("Value_Total")%>
</td>
<td>
<%# Eval("DOC_TIPO_NOMBRE")%>
</td>
<td>
<%# eval("nombre_razon_social")%>
</td>
</tr>
</ItemTemplate>

<AlternatingItemTemplate>
<tr align="center" class="bodyTableAlter" >
<td>
<asp:CheckBox ID="cbSelectItem" runat="server"/>
<asp:HiddenField ID="hfId" runat="server" Value='<%# Eval("Delivery_ID") %>' />
<asp:HiddenField ID="hfTransaccion" runat="server" Value='<%# Eval("Transaction_ID") %>' />
<asp:HiddenField ID="hfDocumen" runat="server" Value='<%# Eval("DOC_TIPO_ID") %>' />
<asp:HiddenField ID="hfSricode" runat="server" Value='<%# Eval("SRI_Code") %>' />
<asp:HiddenField ID="hfautoriza" runat="server" Value='<%# Eval("Number_Autorization") %>' />
</td>

<td>
<%# Eval("Attendant_Name")%>
</td>
<td>
<%# Eval("Delivery_ID")%>
</td>

<td>
<%# Eval("SRI_Code")%>
</td>
<td>
<%# Eval("Transaction_ID")%>
</td>
<td>
<%# Eval("Number_Autorization")%>
</td>
<td>
<%# Eval("Completed_TS", "{0:" + Utilidades.GetFormatDateAndTime + "}")%>
</td>

<td>
<%# Eval("Payment_Name")%>
</td>
<td>
<%# Eval("Pump_ID")%>
</td>
<td>
<%# Eval("Hose_ID")%>
</td>
<td>
<%# Eval("Grade_Name")%>
</td>

<td>
<%# Eval("Volumen")%>
</td>
<td>
<%# Eval("Sale_Price")%>
</td>
<td>
<%# Eval("Tax")%>
</td>

<td>
<%# Eval("Value_Total")%>
</td>
<td>
<%# Eval("DOC_TIPO_NOMBRE")%>
</td>
<td>
<%# eval("nombre_razon_social")%>
</td>
</tr>
</AlternatingItemTemplate>

<EmptyDataTemplate>
<tr align="center" class="bodyTable" >
<td colspan="17">
No se encontraron resultados
</td>
</tr>
</EmptyDataTemplate>
</asp:ListView>

Si te fijas bien, en el ejemplo que te he dado ya se muestra el total fuera del listview.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas