Option Strict On Imports System.Data Imports System.Linq Imports Extensiones Partial Class RH_CatTipoBuzon Inherits ClsPaginas Private Property CveTipoBuzonAEditar() As Integer 'Guardamos el ID de registro para saber cual registro Editar Get Return If(IsNothing(ViewState("CveTipoBuzonAEditar")), -1, CInt(ViewState("CveTipoBuzonAEditar"))) End Get Set ViewState("CveTipoBuzonAEditar") = Value End Set End Property Public Property PuedeEditar As Boolean Get Return CBool(ViewState("PuedeEditar")) End Get Set(value As Boolean) ViewState("PuedeEditar") = value End Set End Property Public Property PuedeEliminar As Boolean Get Return CBool(ViewState("PuedeEditar")) End Get Set(value As Boolean) ViewState("PuedeEditar") = value End Set End Property Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then ViewState("Orden") = "" CargaDatos() ''Permiso Registro 'If PermisoRegistro Then ' LbAgregar.Enabled = True 'Else ' LbAgregar.Enabled = False 'End If End If End Sub Public Sub CargaDatos() Dim ObjTipoBuzon As New ClsRH If ObjTipoBuzon.GetTipoBuzon() Then ViewState("DTTipoBuzon") = ObjTipoBuzon.DtResultados GlobalDTTipoBuzon = ObjTipoBuzon.DtResultados Else Me.GvDatos.DataSource = Nothing End If ObjTipoBuzon.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub BtnAgregarMotivo_Click(sender As Object, e As EventArgs) Handles BtnAgregarMotivoD.Click 'Hacemos aparecer la ventana modal con los campos limpios BtnEditarTiposDModal.Visible = False BtnAgregarTiposDModal.Visible = True CheckActiveSection.Visible = False saltoDeLinea.Visible = False TipoTxt.Text = "" UpModalTiposD.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposD")) End Sub Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles BtnAgregarTiposDModal.Click 'esta funcion es la que agrega un nuevo motivo de baja se activa con el boton "Agregar" de la ventana modal" Dim ObjTipoBuzon As New ClsRH If ObjTipoBuzon.AddTipoBuzon(TipoTxt.Text.Trim, UsuarioActual.CveUsuario) Then TipoTxt.Text = "" Alert("El nuevo Tipo de Buzón se guardó correctamente.", TipoMensaje.MsgInformacion) UpTitulos.Update() ViewState("DTTipoBuzon") = ObjTipoBuzon.DtResultados GlobalDTTipoBuzon = ObjTipoBuzon.DtResultados If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End If ObjTipoBuzon.Dispose() End Sub #Region "G V D A T O S" Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowIndex = 0 Then e.Row.Cells(0).Width = Unit.Pixel(250) e.Row.Cells(1).Width = Unit.Pixel(100) e.Row.Cells(2).Width = Unit.Pixel(100) e.Row.Cells(3).Width = Unit.Pixel(100) e.Row.Cells(4).Width = Unit.Pixel(100) e.Row.Cells(5).Width = Unit.Pixel(61) End If e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left End If End Sub Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting Dim ObjTipoBuzon As New ClsRH If ObjTipoBuzon.RemoveTipoBuzon(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then GvDatos.EditIndex = -1 ViewState("DTTipoBuzon") = ObjTipoBuzon.DtResultados GlobalDTTipoBuzon = ObjTipoBuzon.DtResultados Alert("El Tipo de Buzón se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjTipoBuzon.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub GvDatos_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvDatos.RowCancelingEdit GvDatos.EditIndex = -1 If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Public Sub GvDatos_RowUpdating(sender As Object, e As EventArgs) Handles BtnEditarTiposDModal.Click '(Leer primero "GvDatos_RowEditing")Se manda la informacion a un procedmiento que hace la actualizacion Dim ObjTipoBuzon As New ClsRH Dim TipoBuzon As String = TipoTxt.Text.Trim Dim Estatus As Boolean = ChkEstatus.Checked Dim CveTipoBuzon As Integer = CveTipoBuzonAEditar 'aquí obtenemos el valor de la propiedad que utilizamos en el metodo "GvDatos_RowEditing" If ObjTipoBuzon.UpdateTipoBuzon(TipoBuzon, Estatus, CveTipoBuzon) Then GvDatos.EditIndex = -1 ViewState("DTTipoBuzon") = ObjTipoBuzon.DtResultados GlobalDTTipoBuzon = ObjTipoBuzon.DtResultados Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) End If ObjTipoBuzon.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Public Sub GvDatos_RowEditing(sender As Object, e As EventArgs) 'Este metodo muestra la pantalla modal con la información del renglon ya puesta en los campos del formulario BtnAgregarTiposDModal.Visible = False BtnEditarTiposDModal.Visible = True CheckActiveSection.Visible = True saltoDeLinea.Visible = True Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) 'obtenemos el renglon que acabamos de seleccionar TipoTxt.Text = GvRow.DataKey("TipoBuzon") ChkEstatus.Checked = If(GvRow.DataKey("Estatus") = "Activo", True, False) CveTipoBuzonAEditar = Convert.ToInt32(GvRow.DataKey("CveTipoBuzon")) 'Guardamos en una propiedad el id del registro del cual haremos cambios, se guarda y se utiliza en el metodo "GvDatos_RowUpdating" UpDatos.Update() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposD")) End Sub #End Region #Region "O R D E N A M I E N T O" Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) Dim Orden As String = "" Dim Campo As String = "" Dim Literal As Literal = Nothing Const OrdenInicial As String = "" Dim Arg(2) As String Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) Campo = Arg(0) Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) Literal.Text = String.Format("") Else ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) Literal.Text = String.Format("") End If Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString ViewState("Orden") = Orden CargaGrid(Orden) End Sub Private Sub CargaGrid(Orden As String) If Orden <> String.Empty Then Dim DV As New DataView(CType(ViewState("DTTipoBuzon"), DataTable), "", Orden, DataViewRowState.CurrentRows) GvDatos.DataSource = DV.ToTable() DV.Dispose() Else GvDatos.DataSource = CType(ViewState("DTTipoBuzon"), DataTable) End If GvDatos.DataBind() UpDatos.Update() End Sub #End Region End Class