⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gridviewgroup.vb

📁 gridviewhelpervb cla
💻 VB
字号:
'------------------------------------------------------------------------------------------
' Copyright © 2006 Agrinei Sousa [www.agrinei.com]
'
' Esse código fonte é fornecido sem garantia de qualquer tipo.
' Sinta-se livre para utilizá-lo, modificá-lo e distribuí-lo,
' inclusive em aplicações comerciais.
' É altamente desejável que essa mensagem não seja removida.
'------------------------------------------------------------------------------------------

Imports System
Imports System.Collections.Generic
Imports System.Web.UI
Imports System.Web.UI.WebControls


Public Delegate Sub GroupEvent(ByVal groupName As String, ByVal values As Object(), ByVal row As GridViewRow)

''' <summary>
''' A class that represents a group consisting of a set of columns
''' </summary>
Public Class GridViewGroup
	#Region "Fields"

	Private _columns As String()
	Private _actualValues As Object()
	Private _quantity As Integer
	Private _automatic As Boolean
	Private _hideGroupColumns As Boolean
	Private _isSuppressGroup As Boolean
	Private _generateAllCellsOnSummaryRow As Boolean
	Private mSummaries As GridViewSummaryList

	#End Region

	#Region "Properties"

	Public ReadOnly Property Columns() As String()
		Get
			Return _columns
		End Get
	End Property

	Public ReadOnly Property ActualValues() As Object()
		Get
			Return _actualValues
		End Get
	End Property

	Public ReadOnly Property Quantity() As Integer
		Get
			Return _quantity
		End Get
	End Property

	Public Property Automatic() As Boolean
		Get
			Return _automatic
		End Get
		Set
			_automatic = value
		End Set
	End Property

	Public Property HideGroupColumns() As Boolean
		Get
			Return _hideGroupColumns
		End Get
		Set
			_hideGroupColumns = value
		End Set
	End Property

	Public ReadOnly Property IsSuppressGroup() As Boolean
		Get
			Return _isSuppressGroup
		End Get
	End Property

	Public Property GenerateAllCellsOnSummaryRow() As Boolean
		Get
			Return _generateAllCellsOnSummaryRow
		End Get
		Set
			_generateAllCellsOnSummaryRow = value
		End Set
	End Property

	Public ReadOnly Property Name() As String
		Get
			Return [String].Join("+", Me._columns)
		End Get
	End Property

	Public ReadOnly Property Summaries() As GridViewSummaryList
		Get
			Return mSummaries
		End Get
	End Property

	#End Region

	#Region "Constructors"

	Public Sub New(ByVal cols As String(), ByVal isSuppressGroup As Boolean, ByVal auto As Boolean, ByVal hideGroupColumns As Boolean, ByVal generateAllCellsOnSummaryRow As Boolean)
		Me.mSummaries = New GridViewSummaryList()
		Me._actualValues = Nothing
		Me._quantity = 0
		Me._columns = cols
		Me._isSuppressGroup = isSuppressGroup
		Me._automatic = auto
		Me._hideGroupColumns = hideGroupColumns
		Me._generateAllCellsOnSummaryRow = generateAllCellsOnSummaryRow
	End Sub

	Public Sub New(ByVal cols As String(), ByVal auto As Boolean, ByVal hideGroupColumns As Boolean, ByVal generateAllCellsOnSummaryRow As Boolean)
		Me.New(cols, False, auto, hideGroupColumns, generateAllCellsOnSummaryRow)
	End Sub

	Public Sub New(ByVal cols As String(), ByVal auto As Boolean, ByVal hideGroupColumns As Boolean)
		Me.New(cols, auto, hideGroupColumns, False)
	End Sub

	#End Region

	Friend Sub SetActualValues(ByVal values As Object())
		Me._actualValues = values
	End Sub

	Public Function ContainsSummary(ByVal s As GridViewSummary) As Boolean
		Return mSummaries.Contains(s)
	End Function

	Public Sub AddSummary(ByVal s As GridViewSummary)
		If Me.ContainsSummary(s) Then
			Throw New Exception("Summary already exists in this group.")
		End If

		If Not s.Validate() Then
			Throw New Exception("Invalid summary.")
		End If

        ''s._group = this;
		s.SetGroup(Me)
		Me.mSummaries.Add(s)
	End Sub

	Public Sub Reset()
		Me._quantity = 0

		For Each s As GridViewSummary In mSummaries
			s.Reset()
		Next
	End Sub

	Public Sub AddValueToSummaries(ByVal dataitem As Object)
		Me._quantity += 1

		For Each s As GridViewSummary In mSummaries
			s.AddValue(DataBinder.Eval(dataitem, s.Column))
		Next
	End Sub

	Public Sub CalculateSummaries()
		For Each s As GridViewSummary In mSummaries
			s.Calculate()
		Next
	End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -