¿Cómo se puede obtener una agregación de suma para Telerik RadGrid GridClientSelectColumn solo para filas seleccionadas?

Soy nuevo en la biblioteca de Telerik y una de mis primeras tareas es obtener un total de los valores en una columna numérica de Telerik RadGrid. La columna es GridClientSelectColumn. Entiendo que al configurar Aggregate="Sum", el pie de página leerá la suma de esa columna. El problema es que solo quiero una suma de las filas seleccionadas. ¿Alguien puede proporcionar una demostración? ¡Gracias de antemano!

preguntado el 22 de mayo de 12 a las 21:05

1 Respuestas

por favor revise el fragmento de código a continuación.

Nota: si desea hacer lo siguiente por etiqueta en lugar de clave de datos, verifique este enlace.

Código JS

 <telerik:RadCodeBlock ID="RadCodeBlock" runat="server">
    <script type="text/javascript">
        function RowSelected(sender, args) {

            var grid = $find("<%=RadGrid1.ClientID %>");

            var totalAmount = 0;

            if (grid) {
                var MasterTable = grid.get_masterTableView();
                var Rows = MasterTable.get_dataItems();
                for (var i = 0; i < Rows.length; i++) {
                    var row = Rows[i];
                    if (row.get_selected() == true) {

                        totalAmount = totalAmount + parseFloat(row.getDataKeyValue("ID"));
                    }
                }
            }

            if ($("span[id$='myFooter']").length > 0) {
                $("span[id$='myFooter']").get(0).innerHTML = "sum is : " + totalAmount;
            }
        }
    </script>
</telerik:RadCodeBlock>

. Aspx

  <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"
        ShowFooter="true" AllowMultiRowSelection="true">
        <MasterTableView ClientDataKeyNames="ID">
            <Columns>
                <telerik:GridClientSelectColumn UniqueName="columnSelect">
                </telerik:GridClientSelectColumn>
                <telerik:GridTemplateColumn DataField="ID" HeaderText="ID" UniqueName="ID">
                    <ItemTemplate>
                        <asp:Label ID="txtID" runat="server" Text='<%# Eval("ID") %>'></asp:Label>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:Label ID="myFooter" runat="server" Text="sum is : 0"></asp:Label>
                    </FooterTemplate>
                </telerik:GridTemplateColumn>
            </Columns>
        </MasterTableView>
        <ClientSettings>
            <Selecting AllowRowSelect="true" />
            <ClientEvents OnRowSelected="RowSelected" OnRowDeselected="RowSelected" />
        </ClientSettings>
    </telerik:RadGrid>

.aspx.cs

 protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    DateTime dt = DateTime.Now;

    dynamic data = new[] {
            new { ID = 1, Name ="Name_1", customdate=dt,NO = 11.00},
            new { ID = 2, Name = "Name2", customdate=dt,NO = 11.00},
            new { ID = 3, Name = "Name3", customdate=dt,NO = 11.00},
            new { ID = 4, Name = "Name4", customdate=dt,NO = 11.44},
            new { ID = 5, Name = "Name5", customdate=dt,NO = 10.4}
        };

    RadGrid1.DataSource = data;
}

contestado el 24 de mayo de 12 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.