protected void btnGuardar_Click(object sender, EventArgs e)
        {
            //Actualiza los permisos de los botones en grid
            PermisosUsuario();

            //Validar que el rfc a guardar o modificar no exista y que escriba algo en el campo rfc
            string valida = string.Empty;

            if (txt_RFC.Text.Trim() == string.Empty)
            {
                valida = "Para poder guardar escriba un RFC";
            }

            else if (Session["Grid"] != null && ((DataTable)(Session["Grid"])).Rows.Count > 0)
            {
                foreach (DataRow fila in ((DataTable)(Session["Grid"])).Rows)
                {
                    //Al guardar
                    if (ModalRFCTitulo.InnerText.Contains("Nuevo") && fila["RFC"].ToString().Trim().ToUpper() == txt_RFC.Text.Trim().ToUpper())
                    {
                        valida = "Ya existe el RFC: " + txt_RFC.Text.Trim();
                        break;
                    }

                    //Al editar
                    if (ModalRFCTitulo.InnerText.Contains("Editar") && Session["txt_RFC"] != null &&
                        fila["RFC"].ToString().Trim().ToUpper() == txt_RFC.Text.Trim().ToUpper() &&
                        fila["RFC"].ToString().Trim() != Session["txt_RFC"].ToString().Trim())
                    {
                        valida = "Ya existe el RFC: " + txt_RFC.Text.Trim();
                        break;
                    }
                }
            }

            if (valida.Length > 0)
            {
                //Mantiene el modal
                MostrarModalRFC();

                //Titulo del Modal
                if (ModalRFCTitulo.InnerText.Contains("Nuevo"))
                {
                    ModalRFCTitulo.InnerText = "Nuevo RFC";
                }
                else
                {
                    ModalRFCTitulo.InnerText = "Editar RFC";
                }
                DataBind();

                AlertError(valida);
                return;
            }


            //Guardar
            string    mensaje = "";
            DataTable dt      = new DataTable();

            if (ModalRFCTitulo.InnerText.Contains("Nuevo"))
            {
                dt = catalogo.GuardarRFC(txt_RFC.Text.ToUpper().Trim(), int.Parse(Session["IdUsuario"].ToString()), lblCadena.Text, ref mensaje);
            }
            else if (ModalRFCTitulo.InnerText.Contains("Editar"))
            {
                dt = catalogo.EditarRFC(Session["txt_RFC"].ToString(), txt_RFC.Text.ToUpper().Trim(), int.Parse(Session["IdUsuario"].ToString()), lblCadena.Text, ref mensaje);
            }

            if (dt != null && dt.Rows.Count > 0)
            {
                Grid.DataSource = Session["Grid"] = dt;
                Grid.DataBind();
                Grid.Settings.VerticalScrollBarMode = ScrollBarMode.Hidden;
                Grid.SettingsPager.PageSize         = 20;

                //Selecccionar el primer registro del grid
                if (Session["Grid"] != null)
                {
                    Grid.Selection.SelectRow(0);
                }

                AlertSuccess("El RFC se " + (ModalRFCTitulo.InnerText.Contains("Editar") ? "actualizó" : "agregó") + ".");
            }
            else
            {
                Grid.DataSource = Session["Grid"];
                Grid.DataBind();
            }

            Grid.Settings.VerticalScrollableHeight = 330;
            Grid.Settings.VerticalScrollBarMode    = ScrollBarMode.Visible;

            //Actualiza los permisos de los botones en grid
            PermisosUsuario();
        }