डेटाग्रिड: पाद लेख में कॉलम के लिए औसत या योग की गणना करें

मेरे पास एक डेटाग्रिड डेटासेट से जुड़ा हुआ है, और मैं पूर्ण परिणाम के साथ आबादी वाले कॉलम के लिए पाद लेख में औसत परिणाम प्रदर्शित करना चाहता हूं।

जिस तरह से मैं समझता हूं, वहां 2 तरीके हैं जिनके बारे में मैं सोच सकता हूं:

1. " स्रोत , ल्यूक" का प्रयोग करें कोड में जहां मैं DataGrid.DataBind() को कॉल कर रहा हूं, DataTable.Compute() विधि ( या मेरे मामले में DataSet.DataTable (0) का उपयोग करें। कॉम्प्यूट() )। उदाहरण के लिए:

Dim strAverage = DataTable.Compute("Avg(ColumnName)", "")  

लेकिन एक बार मेरे पास यह है, मैं इसे पाद लेख में कैसे डाल सकता हूं?

2। " बाउंड महिमा के लिए"
DataGrid.ItemDataBound ईवेंट का उपयोग करना, और प्रत्येक ListItemType.Item और ListItemType.AlternatingItem से चल रहे कुल की गणना करना, अंततः ListItemType.Footer में प्रदर्शित करना। उदाहरण के लिए:

Select Case e.Item.ItemType
    Case ListItemType.Item, ListItemType.AlternatingItem
        runningTotal += CInt(e.Item.Cells(2).Text)
    Case ListItemType.Footer
        e.Item.Cells(2).Text = runningTotal/DataGrid.Items.Count
End Select

यह सिर्फ गलत लगता है, साथ ही मुझे यह सुनिश्चित करना होगा कि प्रत्येक डेटाबैंड पर रनिंग कुल रीसेट हो।

क्या कोई बेहतर तरीका है?

0
ro fr bn

2 उत्तर

धन्यवाद डैनीसमर्फ , आपका पहला उत्तर मुझे समझ में आया। ( हम हमेशा उस जादू समाधान की तलाश क्यों करते हैं? )।

संदर्भ के लिए, मैं यहां क्या कर रहा हूं: ( चेतावनी: नीचे वीबी, पर्याप्त अर्धविराम नहीं हो सकता )

Case ListItemType.Footer
    e.Item.Cells(0).Text = "Average"
    For i As Integer = 3 To 8
        Dim runningTotal As Integer = 0
        For Each row As DataGridItem In DataGrid.Items
            If IsNumeric(row.Cells(i).Text) Then
                runningTotal += CInt(row.Cells(i).Text)
            End If
        Next
    e.Item.Cells(i).Text = Math.Round(runningTotal/DataGrid.Items.Count, 0)
    Next
End Select

मुझे इसे कई कॉलम (इसलिए 3 से 8) के लिए करने की ज़रूरत थी, आखिरकार मैं जादुई समाधान की तलाश क्यों कर रहा था।

0
जोड़ा

मुझे नहीं पता कि या तो बेहतर बेहतर है, लेकिन दो वैकल्पिक तरीके होंगे:

  1. एक बार जब आप पाद लेख दबाते हैं और ऑन-स्क्रीन टेक्स्ट से गणना करते हैं तो तालिका के माध्यम से मैन्युअल रूप से चलाएं
  2. डेटा को मैन्युअल रूप से पुनर्प्राप्त करें और बाध्य से अलग गणना करें

बेशक, # 2 प्रकार ऑफसेट्स डेटा बाध्यकारी के फायदे (यह मानते हुए कि आप क्या कर रहे हैं)।

0
जोड़ा