Option Explicit On Option Strict On Imports System.Data Imports System.Linq Imports Extensiones Partial Class RH_CatJornadas Inherits ClsPaginas Private Property CveJornadaAEditar() As Integer 'Guardamos el ID de registro para saber cual registro Editar Get Return If(IsNothing(ViewState("CveJornadaAEditar")), -1, CInt(ViewState("CveJornadaAEditar"))) End Get Set ViewState("CveJornadaAEditar") = 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() End If End Sub Public Sub CargaDatos() Dim ObjJornadas As New ClsRH If ObjJornadas.GetJornadas() Then ViewState("DTJornadas") = ObjJornadas.DtResultados GlobalDTJornadas = ObjJornadas.DtResultados Else Me.GvDatos.DataSource = Nothing End If ObjJornadas.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 JornadaTxt.Text = "" ClaveSection.Visible = True 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 ObjJornadas As New ClsRH If ObjJornadas.AddJornadas(JornadaTxt.Text.Trim, UsuarioActual.CveUsuario, ClaveTxt.Text.Trim.ToEntero) Then JornadaTxt.Text = "" ClaveTxt.Text = "" Alert("La nueva Jornada se guardó correctamente.", TipoMensaje.MsgInformacion) UpTitulos.Update() ViewState("DTJornadas") = ObjJornadas.DtResultados GlobalDTJornadas = ObjJornadas.DtResultados If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End If ObjJornadas.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(100) e.Row.Cells(1).Width = Unit.Pixel(250) 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(100) e.Row.Cells(6).Width = Unit.Pixel(61) End If e.Row.Cells(1).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 ObjJornadas As New ClsRH If ObjJornadas.RemoveJornadas(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then GvDatos.EditIndex = -1 ViewState("DTJornadas") = ObjJornadas.DtResultados GlobalDTJornadas = ObjJornadas.DtResultados Alert("La Jornada se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjJornadas.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 Protected 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 ObjJornadas As New ClsRH Dim Jornada As String = JornadaTxt.Text.Trim Dim Estatus As Boolean = ChkEstatus.Checked Dim CveJornada As Integer = CveJornadaAEditar 'aquí obtenemos el valor de la propiedad que utilizamos en el metodo "GvDatos_RowEditing" If ObjJornadas.UpdateJornadas(CveJornada, Jornada, Estatus) Then GvDatos.EditIndex = -1 ViewState("DTJornadas") = ObjJornadas.DtResultados GlobalDTJornadas = ObjJornadas.DtResultados Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) End If ObjJornadas.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 ClaveSection.Visible = False Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) 'obtenemos el renglon que acabamos de seleccionar JornadaTxt.Text = GvRow.DataKey("Jornada") ChkEstatus.Checked = If(GvRow.DataKey("Estatus") = "Activo", True, False) CveJornadaAEditar = Convert.ToInt32(GvRow.DataKey("CveJornada")) '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("DTJornadas"), DataTable), "", Orden, DataViewRowState.CurrentRows) GvDatos.DataSource = DV.ToTable() DV.Dispose() Else GvDatos.DataSource = CType(ViewState("DTJornadas"), DataTable) End If GvDatos.DataBind() UpDatos.Update() End Sub #End Region End Class