Back to Devexpress

How to: Implement a Summary Whose Value Depends upon an External Editor Value

aspnet-115486-components-card-view-examples-how-to-implement-a-summary-whose-value-depends-upon-an-external-editor-value.md

latest2.2 KB
Original Source

How to: Implement a Summary Whose Value Depends upon an External Editor Value

  • Dec 17, 2020

The following example calculates a summary in the CategoryID column based on the value in the ASPxSpinEdit below it.

When an end user changes a spin editor value, the editor sends a custom callback to the server in the client-side NumberChanged event handler. In the server-side SummaryDisplayText event handler, the grid calculates the summary value and sets it to the e.Text parameter.

aspx
<dx:ASPxCardView ID="ASPxCardView1" KeyFieldName="CategoryID" ClientInstanceName="grid" 
                 OnSummaryDisplayText="ASPxCardView1_SummaryDisplayText" 
                 AutoGenerateColumns="False"DataSourceID="AccessDataSource1" runat="server">
    <Settings ShowSummaryPanel="True" />
    <Columns>
        <dx:CardViewTextColumn FieldName="CategoryID" ReadOnly="True" />
        <dx:CardViewTextColumn FieldName="CategoryName" />
        <dx:CardViewTextColumn FieldName="Description" />
    </Columns>
    <TotalSummary>
        <dx:ASPxCardViewSummaryItem FieldName="CategoryID" SummaryType="Sum" />
    </TotalSummary>
</dx:ASPxCardView>

<dx:ASPxSpinEdit ID="ASPxSpinEdit1" runat="server" Number="0" Height="21">
    <ClientSideEvents NumberChanged="function(s, e) {
        grid.PerformCallback();
    }" />
</dx:ASPxSpinEdit>
csharp
protected void ASPxCardView1_SummaryDisplayText(object sender, DevExpress.Web.ASPxCardViewSummaryDisplayTextEventArgs e) {
    if (e.Item.FieldName == "CategoryID")
        e.Text = string.Format("Sum = {0}", Convert.ToDouble(e.Value) * Convert.ToDouble(ASPxSpinEdit1.Value));
}
vb
Protected Sub ASPxCardView1_SummaryDisplayText(ByVal sender As Object, ByVal e As DevExpress.Web.ASPxCardViewSummaryDisplayTextEventArgs)
    If e.Item.FieldName = "CategoryID" Then
        e.Text = String.Format("Sum = {0}", Convert.ToDouble(e.Value) * Convert.ToDouble(ASPxSpinEdit1.Value))
    End If
End Sub