diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index ae5d47fc5..9685028a6 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -1628,6 +1628,66 @@ Namespace Extensiones Public Function FCRangeValidator(ByVal Row As GridViewRow, ByVal Control As String) As RangeValidator Return DirectCast(Row.FindControl(Control), RangeValidator) End Function + + + Public Function GetColumn(ByVal gv As GridView, ByVal name As String) As Integer + Dim index As Integer = 0 + Dim found As Boolean = False + + For Each c As DataControlField In gv.Columns + + If TypeOf c Is BoundField Then + Dim field As BoundField = CType(c, BoundField) + + If name = field.DataField OrElse name = field.SortExpression OrElse name = field.HeaderText Then + found = True + Exit For + End If + End If + + index += 1 + Next + + Return If(found, index, -1) + End Function + + + Public Function HiddenColumns(gv As GridView) As List(Of Integer) + Dim columns As New List(Of Integer) + + For i As Integer = 0 To gv.Columns.Count - 1 + If gv.Columns(i).Visible = False Then columns.Add(i) + Next + + Return columns + End Function + + + Public Sub ShowAllColumns(gv As GridView) + For i As Integer = 0 To gv.Columns.Count - 1 + gv.Columns(i).Visible = True + Next + End Sub + + + Public Sub HideColumns(gv As GridView, columns As List(Of Integer)) + For Each i As Integer In columns + gv.Columns(i).Visible = False + Next + End Sub + + + Public Sub DataBind(gv As GridView, BindearCamposNoVisibles As Boolean) + If BindearCamposNoVisibles Then + Dim NoVisibles As List(Of Integer) = gv.HiddenColumns() + gv.ShowAllColumns() + gv.DataBind() + gv.HideColumns(NoVisibles) + Else + gv.DataBind() + End If + End Sub + #End Region #Region "Excel PDF"