viernes, 31 de octubre de 2014

Make sure the application for the file type (.aspx) is installed

Erro de Visual Studio que se soluciona fácil:


  • Ejecutar Visual Studio Command Prompt.

  • Digíte estos comandos:
    • devenv.exe /setup
    • devenv /resetskippkgs
  • Problema resuelto

The web services enumeration components are not available. You need to reinstall Visual Studio to add web references to your application.

Suele ser un error de Visual Studio, solucionarlo es fácil, para lo cual realizar lo siguiente:
  1. Ir a Start -> Run…
  2. Escribir “devenv /resetskippkgs” (sin las comillas)
Y el problema se resuelve.

Unable to evaluate expression because the code is optimized or a native frame is on top

Al realizar un Response.Redirect se obtiene el error, esto sucede por que ResponseRedirect recibe 2 parámetro y solo estamos enviando 1, lo que se hace es agregar el parámetro faltante y listo.

Response.Redirect ("otraPagina.aspx", false);

Error en tiempo de ejecución de Microsoft JScript: 'this._postBackSettings.async' es nulo o no es un objeto

Si se trata de un botón poner el botón dentro de un panel  y, a continuación, añada esta línea al panel DefaultButton = "Button1" y listo.

Se puede colocar todo dentro de un UpdatePanel y para controlar el error agregar un trigger el botón:

 </ContentTemplate>
   <triggers>
       <asp:PostBackTrigger ControlID="btnsubir"></asp:PostBackTrigger>
   </triggers>
  </asp:UpdatePanel>


Microsoft JScript runtime error: RSClientController is undefined (ReportViewer)

Ir a las herramientas administrativas del servidor y a IIS 7.0.

Dentro del directorio de la aplicación virtual en IIS 7, realizaremos los siguientes pasos:

  • Doble clic sobre la sección IIS, y luego en la opción Handler Mappings.
  • Dentro de la ventana de Handler Mappings, clic sobre la opción Add Managed Handler.
  • En la ventana de Add Managed Handler, escribir lo siguiente:
    •     Request path: Reserved.ReportViewerWebControl.axd
    •     Type: Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms,     Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    •   Name: Reserved.ReportViewerWebControl.axd
  • Dar clic en OK.

Evitar el envío de notificaciones propias de actividades de BPM K2

Al instalar k2 se debe ingresar un correo para el envío de las notificaciones y debe ser un correo existente, es este correo configurado el que envía las notificaciones propias de las actividades.

Para modificar este correo y evitar el envío de notificaciones vamos a realizar lo siguiente:


  • Ir a la ruta de instalación de K2 "C:\Program Files\K2 blackpearl\Host Server\Bin", aquí ubicar el archivo SourceCode.Eventbus.Server.config, abrir con blog de notas.
  • Ubicar la sección "<sendmailfrom>administrador@db.com</sendmailfrom>" y modificar el correo existente, agregar algo al correo para que no sea verdadero:
          <sendmailfrom>administradorCOLOCARALGO@db.com</sendmailfrom>

  • Guardar los cambios realizados.
  • Restaurar el servicio de k2. Para esto ir a los servicios y ubicar K2 y realizar una restauración.
         

Calendario con AJAX

Ejemplo de un calendario con AJAX:

<td width="250px" >
    <asp:TextBox ID="txtHora" runat="server" CssClass="ComboAndFecha"
         ToolTip="Hora" Width="70px"></asp:TextBox>
    <cc1:MaskedEditExtender ID="MaskedEditHora" runat="server" AcceptAMPM="false"
         ErrorTooltipEnabled="True" Mask="99:99" MaskType="Time"
         MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus"
         OnInvalidCssClass="MaskedEditError" TargetControlID="txtHora" />
    <cc1:MaskedEditValidator ID="MaskedEditValidatorHora" runat="server"
         ControlExtender="MaskedEditHora" ControlToValidate="txtHora" Display="Dynamic"
         EmptyValueBlurredText="*" EmptyValueMessage="Campo Obligatorio"
         InvalidValueBlurredMessage="*" InvalidValueMessage="Hora no válida"
         MaximumValueBlurredMessage="*"
         MaximumValueMessage="Hora no válida" MinimumValueBlurredText="*"
         MinimumValueMessage="Hora no válida" />
</td>

Imagen del calendario:


Control:




Error AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts

Error AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts


Si tenemos lo siguiente:

<asp:ScriptManager ID="ScriptManager1" runat="server"
        EnableScriptGlobalization="true"
        EnableScriptLocalization="true">

</asp:ScriptManager>

Cambiarlo por:
<asp1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"
EnableScriptGlobalization="true"
        EnableScriptLocalization="true">

</asp1:ToolkitScriptManager>

Bloquear la techa BACKSPACE mediante JavaScript

BLOQUEAR LA TECLA BACKSPACE

Se debe agregar la siguiente función JavaScript en la página o en un archivo .js:

<SCRIPT LANGUAGE=JAVASCRIPT>
var oLastBtn
=0;
    bIsMenu
= false;
    
//No Right CLICK************************
    
// ****************************
    
If (window.Event)
    document.captureEvents(Event.MOUSEUP);
    
Function nocontextmenu()
    {
    event.cancelBubble
= True
    event.returnValue
= false;
    return false;
    }
    
Function norightclick(e)
    {
    
If (window.Event)
    {
    
If (e.which !=1)
    return false;
    }
    
Else
    
If (event.button !=1)
    {
    event.cancelBubble
= True
    event.returnValue
= false;
    return false;
    }
    }
    document.oncontextmenu
= nocontextmenu;
    document.onmousedown
= norightclick;
    
//**************************************
    
// ****************************
    
// Block backspace onKeyDown************
    
// ***************************
    
Function onKeyDown() {
        
If ( (event.altKey) || ((event.keyCode == 8) &&
                (event.srcElement.type !
= "text" &&
                event.srcElement.type !
= "textarea" &&
                event.srcElement.type !
= "password")) ||
                ((event.ctrlKey)
&& ((event.keyCode == 78) || (event.keyCode == 82)) ) ||
  
  
                (event.keyCode
== 116) ) {
            event.keyCode
= 0;
            event.returnValue
= false;
        }
     }
</SCRIPT>

Como chequear todos CheckBox de un GridView con JavaScript a partir de un CheckBox de la cabecera

Como chequear a partir de un CheckBox en la cabecera

En el caso de tener un CheckBox como ItemTemplate de cabecera en un GridView.

Crear la siguiente función JavaScript:
function CopyCheckStateByColumn(HeaderCheckBox, gridViewName)
{
    var columnIndex = HeaderCheckBox.parentElement.cellIndex;
    var newState = HeaderCheckBox.checked;
    ChangeChecksByColumn(gridViewName, newState, columnIndex);
}

En el evento onclick del CheckBox realizar la llamada a la función, enviando como parámetro el nombre del CheckBox y del GridView:
<asp:TemplateField HeaderText="chk">
<HeaderTemplate>
    <asp:CheckBox ID="chkHeader" runat="server" onclick="javascript:CopyCheckStateByColumn(this,this.offsetParent.offsetParent.id);"/>
</HeaderTemplate>
<ItemTemplate>
    <asp:CheckBox ID="chkTest" runat="server" />
</ItemTemplate>
</asp:TemplateField>

Como chequear todos CheckBox de un GridView con JavaScript

Como chequear todos CheckBox de un GridView

Se lo puede realizar del lado del servidor por programación o del lado del cliente por JavaScript, lo realizaremos por JavaScript para evitar realizar una petición al servidor para realizarlo.

Se declara la siguiente función JavaScript:

function ChangeAllChecks(gridViewName,newState)
{
   var tabla = document.getElementById(gridViewName);
   celdas = tabla.cells;
   for(i=0;i<celdas.length-1;i++)
   {
   if (celdas[i].firstChild.type=="checkbox"
   && celdas[i].firstChild.checked != newState)
      {
         celdas[i].firstChild.click();
      }
   }
}

Para realizar el llamado lo realizamos de la siguiente manera, con true o false dependiendo del caso.
ChangeAllChecks(‘GridView1′,true);

Se lo puede llamar desde un control por ejemplo TextBox:
<asp:Button ID="txtSearchLWaitingList" runat="server" OnClientClick="ChangeAllChecks(‘GridView1′,true);">
</asp:Button>

Bloquear copiar-pegar-cortar en un TextBox

BLOQUEAR COPIAR-PEGAR-CORTAR TEXTBOX (JAVASCRIPT)

En un control de tipo TextBox colocamos lo siguiente:

<asp:TextBox ID="TextBox1" runat="server"
        oncopy="return false"
        onpaste="return false"
        oncut="return false">
</asp:TextBox>

Error en tiempo de ejecución de Microsoft JScript: Sys.WebForms.PageRequestManagerServerErrorException

Error en tiempo de ejecución de Microsoft JScript: Sys.WebForms.PageRequestManagerServerErrorException: Error desconocido al procesar la solicitud en el servidor. El código de estado devuelto por el servidor era: 500

Este error suele suceder en un control GridView en el evento IndexPage, lo que se debe hacer es agregar un trigger que haga referencia a dicho control, bajo la etiqueta "ContetTemplate" declaramos la sección "triggers" y el ControlID colocamos el nombre del GridView.

</ContentTemplate>
<triggers>
    <asp:PostBackTrigger ControlID="gridCards"></asp:PostBackTrigger>
    </triggers>
</asp:UpdatePanel>


Llamar a una función JavaScript desde una página aspx

LLAMAR A UNA FUNCION DE JAVASCRIPT DESDE ASPX

Primero se debe declarar la función JavaScript:

<script type="text/javascript" language="javascript"> 
function IsNumber(e) {
            if (!((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode == 46))) {

                e.returnValue = false;
            }
        }
      </script>

Y realizamos la llamada:
txtFind.Attributes.Add("onKeypress", "IsNumber(event);");

jueves, 30 de octubre de 2014

Unir 2 columnas de un DataTable en una sola para un DropDownList

CARGAR 2 COLUMNAS EN CONTROL DROPDOWNLIST

        DataTable District = soWorkGroup.List();
        //Creamos una nueva columna
        DataColumn dcName = new DataColumn("Name", typeof(string));
        //Cargamos en la nueva columna las dos columnas del DataTable
        dcName.Expression = "CDRACTID + ' - ' + CDRDSC";
        District.Columns.Add(dcName);

        if (District.Rows.Count != 0)
        {
            ddl.AppendDataBoundItems = true;
            ddl.Items.Add(new ListItem("Seleccionar...", "-1"));
            ddl.DataTextField = "Name";
            ddl.DataValueField = "CDRACTID";
            ddl.DataSource = District;
            ddl.DataBind();
        }
        else
        {
            ddl.AppendDataBoundItems = true;
            ddl.Items.Add(new ListItem("No existen datos", "-1"));

                  }