lunes, 24 de abril de 2017

Error ocasionado por Response.Write y ScriptManager

La intención es hacer que cierto texto se actualice dinámicamente, según el value de un key en el web.config.

El value del key se almacena en un Session.

Si se usa Respose.Write sucede un error, y la página no responde.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:contentplaceholder id="ContentPlaceHolder3" runat="server">
<div class="menu_principal">
<ul class="lista_simple">
<%
Select Case Session("ROL")                  
Case "ROL007"
Response.Write("")
Case Else
%>
<div class="modulo">
<div class="titulo_modulo">
<% Response.Write(Session("MASTER_CALEND_ACAD"))%>
</div>
<div>
<ul class="lista_simple">
<li><a href="lima_2017-I.pdf" id="calLima"   target = "_Blank"   >Lima</a></li>
</ul>
</div>
</div>

<%
End Select
%>
</asp:contentplaceholder>
</ContentTemplate>
</asp:UpdatePanel>

Esto genera el siguiente error en el ScriptManager:
No se pudo analizar el mensaje recibido del servidor. Este error suele producirse cuando la respuesta resulta modificada por llamadas a Response.Write() o cuando los filtros de respuesta, los HttpModules o el seguimiento de servidor están habilitados.

La solución es no usar Response.Write. En vez de eso, se debe usar una función pública que devuelva el value del key.

VB
==
Public Function Titulo_Mostrar() As String
Return System.Configuration.ConfigurationManager.AppSettings("MasterCalendAcad")
End Function

Y reemplazar

ASPX
====
<% Response.Write(Session("MASTER_CALEND_ACAD"))%>

por

ASPX
====
<%=Titulo_Mostrar()%>

Listo.

lunes, 2 de enero de 2017

Crystal Reports - Error de conector de base de datos desconocido

Este mensaje aparece al asignar nuestro dataset tipado al reporte.

dtFichaInscrip.TableName = "FichaIns"
ds.Tables.Add(dtFichaInscrip)
rpt.SetDataSource(ds)

Para solucionarlo, en el archivo App.config de nuestro proyecto de Escritorio debemos agregar unas líneas, y comentar otras.

Debe quedar así:

<?xml version="1.0"?>
<configuration>
    <!--<startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>        
    </startup>-->

    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
    </startup>
.
.
.


martes, 19 de julio de 2016

Diálogo modal con Bootstrap, Javascript y jQuery

En el archivo *.js:

function Notas_Evaluciones_jQuery(NumNota) {
    var Contenedor = '#ContentPlaceHolder1_';

    $('.css' + NumNota).on('click', function (e) {
        $('#dlgEval').modal({
            keyboard: true,          //Puede cerrar el diálogo con ESC
            backdrop: 'static'      //Se cierra el diálogo sólo con los botones o ESC
        });

        $('#dlgEval').modal('show');


        return false;
    });

    return false;
}

En el archivo *.aspx:

<div class="modal fade" id="dlgEval" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
<div class="modal-content">
 <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Cerrar"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">Ficha de evaluación del participante</h4>
 </div>
 <div runat="server" id="divDlgEval" class="modal-body">          
 </div>
 <div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary">Guardar</button>
 </div>
</div>
  </div>
</div>

martes, 14 de junio de 2016

Crystal Reports 2008 - Servidor ocupado

Al iniciar Crystal Reports 2008, aparece un pequeño diálogo que dice: "No se puede completar esta acción porque el otro programa esta ocupado. Elija Cambiar a... para activar el programa ocupado y corregir el problema."


La solución es la siguiente:

1) Abrir el Administrador de tareas (CTRL + ALT + SUPR).
2) Ubicar la tarea Agent.exe y finalizarla.


3) En el pequeño diálogo que dice Servidor ocupado, hacer clic en el botón Reintentar.


4) Ahora que ya se pudo abrir Crystal Reports, en el menú Ayuda, desmarcar la opción Comprobar actualizaciones al iniciar.


5) Salir y volver a entrar para comprobar que ya se solucionó.

miércoles, 1 de junio de 2016

SP_HELPTEXT en MySQL

En MySql, el equivalente de sp_helptext de SQL Server se escribe así:

show create procedure Nombre_Procedimiento_Almacenado;

Por ejemplo: show create procedure pa_Encuestas_Sesion_Respuesta_INS;

El código del sp está en la columna Create Procedure de la tabla resultado.

lunes, 2 de mayo de 2016

Desactivar Ir a página anterior con tecla Retroceder (Backspace)

Hasta ahora, es el único código que funciona en los tres navegadores principales.

Javascript
=========
$(document).ready(function () {
    $(document).on("keydown", function (e) {
        if (e.which === 8 && !$(e.target).is("input:not([textarea]), [contentEditable], [contentEditable=true]")) {
            e.preventDefault();
        }

        if (e.which === 8 && !$(e.target).is("input:not([readonly]):not([type=radio]):not([type=checkbox])")) {

            e.preventDefault();
        }
    });
});

Quitar funcionalidad a un textbox DatePicker jQuery UI

Javascript / jQuery
==============

// boolEstado: true, false 

if (boolEstado) {
    $(Contenedor + 'txtFecSesion').datepicker('disable');
}
else {
    $(Contenedor + 'txtFecSesion').datepicker('enable');
}