Entrada destacada

Solucion error AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts

Ajax Control Toolkit en ASP.NET Ajax Library Detalles de la Versión :(AspNetAjaxLibraryBeta0911.zip application, 6490K, uploaded Nov 18 ...

Mostrando entradas con la etiqueta Javascript. Mostrar todas las entradas
Mostrando entradas con la etiqueta Javascript. Mostrar todas las entradas

viernes, 9 de abril de 2010

Solucion error AjaxControlToolkit - La colección de controles no puede modificarse porque el control contiene bloques de...

Ajax Control Toolkit en ASP.NET Ajax Library


Detalles de la Versión :(AspNetAjaxLibraryBeta0911.zip application, 6490K, uploaded Nov 18 2009 - 147484 downloads)

Al trabajar con esta versión de AJAX en “Visual Studio 2008 con Framework 3.5 SP1” , me arrojo el siguiente error:

“La colección de controles no puede modificarse porque el control contiene bloques de código (por ej. ).”

Las causas puede ser varias pero en mi caso solo era mover el bloque de código JavaScript fuera de la etiqueta "Head" del mi MasterPage. La MasterPage era usada por una pagina que contenía controles AJAX y un control de usuario que también tenía controles AJAX.

Dejo aquí la solución por si le pasa a alguien más. Solo era cambiar esto de la MasterPage:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    <title>Prueba</title>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    <script type="text/javascript" src=<%= ResolveUrl("JScript1.js") %>>
    </script>
</head>
<body>
...
</body>
</html>
Por esto otro:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    <title>Prueba</title>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
</head>
<body>
    <script type="text/javascript" src=<%= ResolveUrl("JScript1.js") %>>
    </script>
...
</body>
</html>

Si tienen otra solución me avisan.

Saludos
Toby

miércoles, 10 de diciembre de 2008

Dar Formato al ingreso de numeros con javascript

Continuando con la publicación anterior, ahora utilizaremos las funciones que hemos escrito anteriormente para JavaScript. Ver aquí.


Lo haremos con un pequeño ejemplo. Se trata de dar formato a un número a medida que se va digitando en un cuadro de texto. Esta función se puede usar para el ingreso de códigos o para el RUT en el caso de Chile. Trataré de ser lo mas simple posible. La optimización de la función se las dejo a ustedes.

Si quieres ver como funciona, mira esta página Desachile.com.


La función quedaría así:


function Formato(num)
{
var largo = num.length;
var i, dd, ss, largo2, valor, punto, nvalor

dd=Replace(num,".","");
dd=Replace(dd,",","");
dd=Replace(dd,"-","");

if (Len(dd) <= 1)
{
if (IsNumeric(dd) == false)
{
num = "";
return (num);
}
}
else
{
if (IsNumeric(Left(dd, Len(dd) - 1)) == false)
{
num = "";
return (num);
}
}
largo2 = Len(dd);
i = 3;
valor = Left(dd, largo2 - 1);
largo = Len(valor);
nvalor = "";

if (largo2 >= 4)
{
while (i <= largo)
{
if (i < largo)
{
punto = ".";
}
else
{
punto = "";
}
nvalor = punto + Right(valor, 3) + nvalor;

if (Len(valor) > 1)
{
valor = Left(valor, Len(valor) - 3)
}
i = i + 3
}
nvalor = valor + nvalor;
nvalor = nvalor + "-" + Right(dd, 1);
return (nvalor);
}
else
{
if (largo2 > 1)
{
nvalor = Left(valor, 3) + "-" + Right(dd, 1);
}
else
{
nvalor=Replace(num,"-","");
}
return (nvalor);
}
}




Para mis amigos de Chile, les dejo como tarea el cálculo automático del digito verificador del RUT a medida que se van ingresando valores. En una futura publicación mostraré mi solución.

Saludos a todos. Toby.

Funciones Visual Basic para JavaScript

Aquí les dejo algunas funciones que normalmente usamos cuando programamos en Visual Basic, ASP, y que no las tenemos a la mano cuando programamos en JavaScript.



Replace ()

Devuelve una cadena en la que se reemplazó una subcadena especificada con otra subcadena un número especificado de veces.


function Replace(valor,n,c)
{
var valor = valor.split(n);
valor = valor.join(c);
return valor;
}



IsNumeric ()


Devuelve un valor de tipo Boolean que indica si unaexpresión se puede evaluar como un número.


function IsNumeric(valor)
{
var log=valor.length; var sw="S";
for (var x=0; x < log; x++)
{
v1=valor.substr(x,1);
v2 = parseInt(v1);
if (isNaN(v2))
{
sw= "N";
}
}
if (sw=="S")
{
return true;
}
else
{
return false;
}
}



LTrim, Rtrim y Trim (Funciones)



Devuelve una copia de una cadena determinada sin espacios a la izquierda (LTrim), sin espacios a la derecha (RTrim) o sin espacios ni a la derecha ni a la izquierda (Trim).


function LTrim(date)
{
var i = 0;
var j = date.length - 1;

if (date == null)
return (false);

for (i = 0; i < date.length; i++)
{
if (date.substr(i, 1) != ' ' &&
date.substr(i, 1) != '\t')
break;
}

if (i <= j)
return (date.substr(i, (j+1)-i));
else
return ('');
}

function RTrim(date)
{
var i = 0;
var j = date.length - 1;

if (date == null)
return (false);

for(j = date.length - 1; j >= 0; j--)
{
if (date.substr(j, 1) != ' ' &&
date.substr(j, 1) != '\t')
break;
}

if (i <= j)
return (date.substr(i, (j+1)-i));
else
return ('');
}

function Trim(date)
{
if (date == null)
return (false);

return RTrim(LTrim(date));
}



Space ()


Devuelve una cadena que consiste en un número especificado de espacios.


function Space(n)
{
var t="";

for(var i=1; i<=n; i++)
t=t+" ";
return t;
}



Mid ()


Devuelve una cadena que contiene un número especificado de caracteres.


function Mid(s, n, c)
{
var numargs=Mid.arguments.length;

if(numargs<3)
c=s.length-n+1;

if(c<1)
c=s.length-n+1;
if(n+c >s.length)
c=s.length-n+1;
if(n>s.length)
return "";

return s.substring(n-1,n+c-1);
}



Left ()


Devuelve una cadena que contiene un número especificado de caracteres del lado izquierdo de la cadena.


function Left(s, n)
{
if(n>s.length)
n=s.length;

return s.substring(0, n);
}



Right ()


Devuelve una cadena que contiene un número especificado de caracteres del lado derecho de la cadena.


function Right(s, n)
{
var t=s.length;
if(n>t)
n=t;

return s.substring(t-n, t);
}



Len ()


Devuelve el número de caracteres en una cadena.


function Len(d)
{
if (Trim(d) != "")
{
return(d.length);
}
else
{
return(0);
}
}



Si quieres descargar el código, se ecuentra en esta página Desachile.com.


Espero les Ayude. Toby.

Entradas populares