Frage

Ich bin bevölkern eine Telerik RadGrid mit Daten aus einer Datentabelle (System.Data.DataTable). Als ich die Unterstützung Anwendung jemand anderes, ich kann keine andere Datenquelle oder Display-Steuerung verwendet werden.

In meinem Gitter habe ich drei Spalten: Lassen Sie uns sagen, sie sind Widgets Produktion (Spalte A), Fehlerhafte Widgets (Spalte B) und Fehlerhaftigkeit Anteil (Spalte C). Die Datenbankabfrage liefert für mich diese und macht die Berechnung C = B / A.

habe ich eine Summenzeile (a Telerik GridFooterItem) am unteren Rand des Rasters. In den Spalten A und B Telerik berechnet die Summen für die Spalten für mich. Wir können nicht den richtigen Wert für die ‚Gesamt‘ die Spalte C aus Spalte C berechnen allein. Wir es mit (die Summe aus B) füllen müssen / (die Summe von A)

Ich habe es geschafft, dies zu tun, indem Sie die DataBound Ereignis des RadGrid Handhabung und manuell die Zellen in der Fußzeile bevölkern. (Ich hatte das GridFooterItem im ItemCreated Ereignis zu fangen, dann in sie Werte in der DataBound Ereignis, nachdem er automatisch die Summen für A und B für mich berechnet hatte.) Das fühlt sich ziemlich hacky - vielleicht ist es eine bessere Art und Weise ... ?

Wie auch immer, das wichtige Bit ist diese:

Meine Gitter ist aufgeteilt in Gruppen, so brauche ich auch zu bevöl Spalte C in den GridGroupFooterItems. Ich kann nicht meine Hacky Technik zur Arbeit in diesem Fall bekommen: Ich finde die Fußzeile Zelle I mit myGridFooterItem["WidgetsProduced"] will, aber ich kann nicht die Gruppenfuß Zellen mit myGridGroupFooterItem["WidgetsProduced"] bekommen - es ist einfach nicht ein Wörterbuch

Ich habe mit myGridGroupFooterItem.Cells[] versucht, aber diese TableCellCollection enthält ein paar mehr Zellen als ich erwarten würde, so sie durch Integer-Index zugreifen fühlt sich ein bisschen ropey (vor allem, da dies ein benutzerdefinierter Bericht, so dass die Spalten sein kann in beliebiger Reihenfolge).

So: Wie fülle ich diese Zellen mit meiner Berechnung

?
War es hilfreich?

Lösung

Ihr Artikel Databound-Ereignis sieht so etwas wie

grd_ItemDataBound(object sender,GridItemEventArgs e)
{
//catch the footer element
if(e.Item.ItemType==GridItemType.GroupFooter)
{
    (e.Item.FindControl("yourTextBox") as TextBox).Text = your calculated value
}


}

Andere Tipps

ich doppelt geprüft, ob eindeutige Namen Indexer arbeitet mit Q2 2009 Q3 2009-Version von RadGrid für ASP.NET AJAX und es funktionierte auf meinem Rechner. Überprüfen Sie Ihre Version und bitten um weitere Hilfe mit dem Telerik Foren , wenn nötig.

Dick

Versuchen Sie diese

In Aspx Seite:

<telerik:GridBoundColumn Aggregate="Sum" DataField="Price" DataFormatString="{0:C}" EmptyDataText="0" FooterText="Total :" HeaderText="Price" UniqueName="Price"> ...

(Oder)

In-Code hinter der Seite:

Private Sub RadGrid1_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemDataBound       
    Dim Item As GridDataItem
    Dim value as Double
    Select Case (e.Item.ItemType)
    Case Telerik.Web.UI.GridItemType.AlternatingItem, Telerik.Web.UI.GridItemType.EditItem,Telerik.Web.UI.GridItemType.Item,Telerik.Web.UI.GridItemType.SelectedItem

        Item = e.Item
    '------ Calculate Total  amount -----------
        Item("TotalPayment").Text = CDbl(Item("TotalPayment").Text) 
        value += CDec(Item("TotalPayment").Text)

    Case Telerik.Web.UI.GridItemType.Footer
        '------ Display the total  amount in Footer ------
        Dim footerItem As GridFooterItem = e.Item
        If Not RadGrid1.Items.Count = 0 Then footerItem("TotalPayment").Text = "Total :" + value
    End Select
End Sub

Nun, wenn Sie benutzerdefinierte Formel zu berechnen Ergebnisse anstelle von Standardaggregate wie Summe verwenden, durchschnittlich und so weiter, müssen Sie wahrscheinlich auf Ihre eigene Logik verlassen. Die Zellen aus der Gruppe Fußzeilen sollen eindeutige Namen Wende sein - ich erinnere mich diese nicht mit früheren Telerik ASP.NET Grid-Versionen unterstützt, aber diese wurde in neueren Versionen hinzugefügt -. Q2 oder Q3 2009

Dick

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top