You are on page 1of 98

Referencia de

Cliente de

Microsoft AJAX

Library


Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 2 de 98
ndice del Manual
1. Global (Espacio de nombres)
1.1. Extensiones de tipo base de JavaScript
1.1.1. Extensiones de tipo de matriz
1.1.1.1. Funciones de tipo de matriz
1.1.2. Extensiones de tipo booleano
1.1.2.1. Funciones de tipo booleano
1.1.3. Extensiones de tipo de fecha
1.1.3.1. Funciones de tipo de fecha
1.1.4. Extensiones de tipo de error
1.1.4.1. Campos de tipo de error
1.1.4.2. Funciones de tipo de error
1.1.5. Extensiones de tipo de funcin
1.1.5.1. Funciones de tipo de funcin
1.1.6. Extensiones de tipo de nmero
1.1.6.1. Funciones de tipo de nmero
1.1.7. Extensiones de tipo de objeto
1.1.7.1. Funciones de tipo de objeto
1.1.8. Extensiones de tipo de cadena
1.1.8.1. Funciones de tipo de cadena
1.2. Type (Clase)
1.3. Mtodos abreviados globales
2. Sys (Espacio de nombres)
2.1. Sys.Application (Clase)
2.2. Sys.ApplicationLoadEventArgs (Clase)
2.3. Sys.Browser (Clase)
2.4. Sys.CancelEventArgs (Clase)
2.5. Sys.CollectionChange (Clase)
2.6. Sys.CommandEventArgs (Clase)
2.7. Sys.Component (Clase)
2.8. Sys.CultureInfo (Clase)
2.9. Sys.Debug (Clase)
2.10. Sys.EventArgs (Clase)
2.11. Sys.EventHandlerList (Clase)
2.12. Sys.HistoryEventArgs (Clase)
2.13. Sys.IContainer (Interfaz)
2.14. Sys.IDisposable (Interfaz)
2.15. Sys.INotifyDisposing (Interfaz)
2.16. Sys.INotifyPropertyChange (Interfaz)
2.17. Sys.NotifyCollectionChangedAction (Enumeracin)
2.18. Sys.NotifyCollectionChangedEventArgs (Clase)
2.19. Sys.Observer (Clase)
2.20. Sys.PropertyChangedEventArgs (Clase)
2.21. Sys.Res (Clase)
2.22. Sys.StringBuilder (Clase)
2.23. Tipos de excepcin Sys
3. Sys.Net (Espacio de nombres)
3.1. Clases de proxy generadas
3.2. Sys.Net.NetworkRequestEventArgs (Clase)
3.3. Sys.Net.WebRequest (Clase)
3.4. Sys.Net.WebRequestExecutor (Clase)
3.5. Sys.Net.WebRequestManager (Clase)
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 3 de 98
3.6. Sys.Net.WebServiceError (Clase)
3.7. Sys.Net.WebServiceProxy (Clase)
3.8. Sys.Net.XMLHttpExecutor (Clase)
4. Sys.Serialization (Espacio de nombres)
4.1. Sys.Serialization.JavaScriptSerializer (Clase)
5. Sys.Services (Espacio de nombres)
5.1. Sys.Services.AuthenticationService (Clase)
5.2. Sys.Services.ProfileGroup (Clase)
5.3. Sys.Services.ProfileService (Clase)
5.4. Sys.Services.RoleService (Clase)
6. Sys.UI (Espacio de nombres)
6.1. Sys.UI.Behavior (Clase)
6.2. Sys.UI.Bounds (Clase)
6.3. Sys.UI.Control (Clase)
6.4. Sys.UI.DomElement (Clase)
6.5. Sys.UI.DomEvent (Clase)
6.6. Sys.UI.Key (Enumeracin)
6.7. Sys.UI.MouseButton (Enumeracin)
6.8. Sys.UI.Point (Clase)
6.9. Sys.UI.VisibilityMode (Enumeracin)
7. Sys.WebForms (Espacio de nombres)
7.1. Sys.WebForms.BeginRequestEventArgs (Clase)
7.2. Sys.WebForms.EndRequestEventArgs (Clase)
7.3. Sys.WebForms.InitializeRequestEventArgs (Clase)
7.4. Sys.WebForms.PageLoadedEventArgs (Clase)
7.5. Sys.WebForms.PageLoadingEventArgs (Clase)
7.6. Sys.WebForms.PageRequestManager (Clase)
7.7. Excepciones de Sys.WebForms


Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 4 de 98
Referencia de Cliente de Microsoft AJAX Library
Microsoft Ajax Library incluye un marco de trabajo avanzado que simplifica la programacin del cliente. En l se
muestran los espacios de nombres de Microsoft Ajax Library.
Espacios de nombres
Global
Contiene miembros y tipos que extienden los objetos base ECMAScript (JavaScript) y proporciona miembros
que resultan ms familiares a los programadores de .NET. Incluye extensiones para los objetos y tipos Array,
Boolean, Error, Number, Object y String de JavaScript.
Sys
Representa el espacio de nombres de la raz para Microsoft Ajax Library, que contiene todas las clases
fundamentales y clases base.
Sys.Net
Contiene tipos relacionados con la comunicacin entre las aplicaciones de Microsoft Ajax y los servicios Web
en el servidor.
Sys.Serialization
Contiene tipos relacionados con la serializacin de los datos de las aplicaciones de Microsoft Ajax.
Sys.Services
Contiene tipos que proporcionan acceso de script de cliente al servicio de autenticacin, servicio de perfil y
otros servicios de aplicacin de ASP.NET.
Sys.UI
Contiene tipos relacionados con la interfaz de usuario (IU), como controles, eventos y propiedades de IU en
Microsoft Ajax Library.
Sys.WebForms
Contiene tipos relacionados con la representacin parcial de pginas en Microsoft Ajax Library.
1. Global (Espacio de nombres)
En esta seccin se incluyen los miembros o tipos que extienden el objeto ECMAScript (JavaScript) Global y otros objetos
bsicos.
Extensiones de tipo base de JavaScript
Nombre Descripcin
Extensiones de
tipo de matriz
Proporciona extensiones a la funcionalidad JavaScript Array bsica agregando mtodos
estticos.
Extensiones de
tipo booleano
Proporciona extensiones al objeto JavaScript Boolean base.
Extensiones de
tipo de fecha
Proporciona extensiones al objeto JavaScript Date base.
Extensiones de
tipo de error
Proporciona funciones estticas que extienden el tipo JavaScript Error integrado
mediante la inclusin de detalles de excepcin y compatibilidad con los modos de
compilacin (depuracin o lanzamiento) de la aplicacin.
Extensiones de
tipo de funcin
Proporciona funciones estticas que extienden el tipo Function integrado de
ECMAScript (JavaScript) mediante la inclusin de detalles de excepcin y
compatibilidad con los modos de compilacin (depuracin o lanzamiento) de la
aplicacin.
Extensiones de
tipo de nmero
Extiende la funcionalidad JavaScript Number bsica con mtodos estticos y de
instancia.
Extensiones de
tipo de objeto
Proporciona una funcionalidad extendida similar a la reflexin al objeto
JavaScript Object base.
Extensiones de
tipo de cadena
Proporciona extensiones a la funcionalidad JavaScript String bsica con mtodos
estticos y de instancia.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 5 de 98
Tipos
Nombre Descripcin
Type (Clase) Proporciona un sistema de establecimiento y reflexin de tipos para las funciones de
programacin orientada a objetos de JavaScript.
Accesos directos globales a las API utilizadas normalmente
Nombre Descripcin
Sys.UI.DomEvent $addHandler
(Mtodo)
Proporciona un acceso directo al mtodo Sys.UI.DomEvent.
addHandler, que agrega un controlador de eventos DOM al elemento
de DOM que expone el evento.
Sys.UI.DomEvent.$addHandlers
(Mtodo)
Proporciona un acceso directo al mtodo Sys.UI.DomEvent.
addHandlers, que agrega una lista de controladores de eventos DOM
al elemento de DOM que expone los eventos.
Sys.UI.DomEvent.$clearHandlers
(Mtodo)
Proporciona un acceso directo al mtodo Sys.UI.DomEvent
clearHandlers, que quita todos los controladores de eventos DOM de
un elemento DOM que se agregaron a travs de los mtodos
Sys.UI.DomEvent addHandler o Sys.UI.DomEvent addHandlers.
Sys.Component $create (Mtodo) Proporciona un acceso directo al mtodo Sys.Component.create, que
crea e inicializa un componente del tipo especificado.
Sys.Application $find (Mtodo) Proporciona un acceso directo al mtodo Sys.Application.find
Component, que devuelve el objeto Component especificado.
Sys.UI.DomElement $get
(Mtodo)
Proporciona un acceso directo al mtodo getElementById, que
devuelve una matriz de todos los componentes registrados con la
aplicacin utilizando el mtodo addComponent.
Sys.UI.DomEvent
$removeHandler (Mtodo)
Proporciona un acceso directo al mtodo System.UI.DomEvent.
removeHandler, que quita un controlador de eventos DOM del
elemento DOM que expone el evento.
1.1. Extensiones de tipo base de JavaScript
Los miembros de las extensiones de tipo Microsoft Ajax Library extienden la funcionalidad bsica de los objetos
ECMAScript (JavaScript).
Miembros
Name Descripcin
Extensiones de tipo de
matriz
Proporciona extensiones al objeto JavaScript Array base.
Extensiones de tipo
booleano
Proporciona extensiones al objeto JavaScript Boolean base.
Extensiones de tipo de
fecha
Proporciona extensiones al objeto JavaScript Date base.
Extensiones de tipo de
error
Proporciona extensiones al objeto JavaScript Error base.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 6 de 98
Extensiones de tipo de
nmero
Proporciona extensiones al objeto JavaScript Number base.
Extensiones de tipo de
objeto
Proporciona una funcionalidad extendida similar a la reflexin al objeto
JavaScript Object base.
Extensiones de tipo de
cadena
Proporciona extensiones al objeto JavaScript String base.
1.1.1. Extensiones de tipo de matriz
Proporciona extensiones a la funcionalidad ECMAScript (JavaScript) Array bsica agregando mtodos estticos.
Espacio de nombres: ninguno. Esta extensin de tipo es global y no forma parte de un espacio de nombres.
Hereda: Array
var arrayVar = new Array("Saturn","Mars","Jupiter");
Array.add(arrayVar, "Earth");
Extensiones de miembro
Name Descripcin
Array.add (Funcin) Agrega un elemento al final de un objeto Array.
Array.addRange
(Funcin)
Copia todos los elementos de la matriz especificada al final de un
objeto Array.
Array.clear (Funcin) Quita todos los elementos de un objeto Array.
Array.clone (Funcin) Crea una copia superficial de un objeto Array.
Array.contains (Funcin) Determina si un elemento se encuentra en un objeto Array.
Array.dequeue (Funcin) Quita el primer elemento de un objeto Array.
Array.enqueue (Funcin) Agrega un elemento al final de un objeto Array.
Nota
Utilice la funcin add en lugar de la funcin Array.enqueue.
Array.forEach (Funcin) Realiza una accin especificada en cada elemento de un objeto Array.
Array.indexOf (Funcin) Busca el elemento especificado de un objeto Array y devuelve su ndice.
Array.insert (Funcin) Inserta un valor en la ubicacin especificada en un objeto Array.
Array.parse (Funcin) Crea un objeto Array a partir de una representacin en forma de cadena.
Array.remove (Funcin) Quita la primera aparicin de un elemento en un objeto Array.
Array.removeAt
(Funcin)
Quita un elemento en la ubicacin especificada en un objeto Array.
Comentarios
Las extensiones de Array forman parte de Microsoft Ajax Library. Agregan mtodos estticos al objeto JavaScript
Array para proporcionar una funcionalidad adicional.
Ejemplo
En el ejemplo siguiente se muestra cmo crear un nuevo objeto Array e invocar la funcin add Microsoft Ajax Library
para agregar matrices como un elemento a una matriz nica. A continuacin, se pasa la matriz multidimensional a una
funcin que muestra la matriz como una tabla en el documento.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 7 de 98
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Sample</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<div id="results">
</div>
<script type="text/javascript">
// Create and display a table based on array content.
function displayTable(arrayTable, element)
{
var tableMarkup;
tableMarkup = "<table border=on>";
var rows = arrayTable[0][0].length;
for(x=0; x<=rows; x++)
{
tableMarkup += "<tr>";
var columns = arrayTable[x].length - 1;
for(y=0; y<=columns; y++)
{
tableMarkup += "<td>" + arrayTable[x][y] + "</td>";
}
tableMarkup += "</tr>";
}
tableMarkup += "</table>";
element.innerHTML += tableMarkup;
// Clean up.
Array.clear(arrayTable);
}

// Create table data.
function createTableData()
{
var costsArray = [];
var headerRow = new Array("ID", "Name", "Costs");
var firstRow = new Array("1", "ruler", "1.30");
var secondRow = new Array("2", "binder", "4.75");
Array.add(costsArray, headerRow);
Array.add(costsArray, firstRow);
Array.add(costsArray, secondRow);
return costsArray;
}

var myTable = createTableData();
var element = $get("results");
displayTable(myTable, element);
</script>
</form>
</body>
</html>
1.1.1.1. Funciones de tipo de matriz
Funciones
Name Descripcin
Array.add (Funcin) Agrega un elemento al final de un objeto Array.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 8 de 98
Array.addRange
(Funcin)
Copia todos los elementos de la matriz especificada al final de un
objeto Array.
Array.clear (Funcin) Quita todos los elementos de un objeto Array.
Array.clone (Funcin) Crea una copia superficial de un objeto Array.
Array.contains (Funcin) Determina si un elemento se encuentra en un objeto Array.
Array.dequeue (Funcin) Quita el primer elemento de un objeto Array.
Array.enqueue (Funcin) Agrega un elemento al final de un objeto Array.
Nota
Utilice la funcin add en lugar de la funcin Array.enqueue.
Array.forEach (Funcin) Realiza una accin especificada en cada elemento de un objeto Array.
Array.indexOf (Funcin) Busca el elemento especificado de un objeto Array y devuelve su ndice.
Array.insert (Funcin) Inserta un valor en la ubicacin especificada en un objeto Array.
Array.parse (Funcin) Crea un objeto Array a partir de una representacin en forma de cadena.
Array.remove (Funcin) Quita la primera aparicin de un elemento en un objeto Array.
Array.removeAt
(Funcin)
Quita un elemento en la ubicacin especificada en un objeto Array.
1.1.2. Extensiones de tipo booleano
Proporciona extensiones al objeto ECMAScript (JavaScript) Boolean base.
Espacio de nombres: ninguno. Esta extensin de tipo es global y no forma parte de un espacio de nombres.
Hereda: nada
var booleanVar = new Boolean(true);
Extensiones de miembro
Name Descripcin
Boolean.parse (Funcin) Convierte una representacin en forma de cadena de un valor lgico en su
objeto Boolean equivalente.
Comentarios
Las extensiones de Boolean forman parte de Microsoft Ajax Library. Agregan funcionalidad al objeto JavaScript Boolean
y proporcionan miembros que resultan ms familiares a los programadores de .NET.
Ejemplo
En el ejemplo siguiente se muestra cmo crear un nuevo objeto Boolean e invocar la funcin parse de Microsoft Ajax
Library para crear un valor booleano a partir de una cadena.
var a = new Boolean(true);
if (a == true){
alert("a = true");
}else{
alert("a = false");
}
var b = Boolean.parse("true");
if (b == true){
alert("b = true");
}else{
alert("b = false");
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 9 de 98
}
1.1.2.1. Funciones de tipo booleano
Funciones
Name Descripcin
Boolean.parse (Funcin) Convierte una representacin en forma de cadena de un valor lgico en su
objeto Boolean equivalente.
1.1.3. Extensiones de tipo de fecha
Proporciona extensiones al objeto ECMAScript (JavaScript) Date base.
Espacio de nombres: ninguno. Esta extensin de tipo es global y no forma parte de un espacio de nombres.
Hereda: nada
var a = new Date();
Extensiones de miembro
Name Descripcin
Date.format (Funcin) Da formato a una fecha utilizando la referencia cultural de todos los idiomas
(independiente de la configuracin de referencia cultural).
Date.localeFormat
(Funcin)
Crea una fecha a partir de una cadena especfica de la configuracin regional
utilizando la referencia cultural actual.
Date.parseLocale
(Funcin)
Crea una fecha a partir de una cadena especfica de la configuracin regional
utilizando la referencia cultural actual.
Date.parseInvariant
(Funcin)
Crea una fecha a partir de una cadena utilizando la referencia cultural de todos
los idiomas.
Comentarios
Las extensiones de fecha forman parte de Microsoft Ajax Library y agregan funcionalidad al objeto JavaScript Date.
1.1.3.1. Funciones de tipo de fecha
Funciones
Name Descripcin
Date.format (Funcin) Da formato a una fecha utilizando la referencia cultural de todos los idiomas
(independiente de la configuracin de referencia cultural).
Date.localeFormat
(Funcin)
Crea una fecha a partir de una cadena especfica de la configuracin regional
utilizando la referencia cultural actual.
Date.parseLocale
(Funcin)
Crea una fecha a partir de una cadena especfica de la configuracin regional
utilizando la referencia cultural actual.
Date.parseInvariant
(Funcin)
Crea una fecha a partir de una cadena utilizando la referencia cultural de todos
los idiomas.
1.1.4. Extensiones de tipo de error
Proporciona funciones estticas que extienden el tipo ECMAScript (JavaScript) Error integrado mediante la inclusin de
detalles de excepcin y compatibilidad con los modos de compilacin (depuracin o lanzamiento) de la aplicacin.
Espacio de nombres: ninguno. Esta extensin de tipo es global y no forma parte de un espacio de nombres.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 10 de 98
Hereda: nada
var err = Error.create(message, errorInfo);
Extensiones de miembro
Name Descripcin
Error.argument (Funcin) Crea un objeto Error que representa la excepcin Sys.ArgumentException.
Error.argumentNull
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ArgumentNull
Exception.
Error.argumentOutOfRange
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ArgumentOutOf
RangeException.
Error.argumentType
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ArgumentType
Exception.
Error.argumentUndefined
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ArgumentUndefined
Exception.
Error.create (Funcin) Crea un objeto Error que tiene informacin de error adicional opcional.
Error.format (Funcin) Crea un objeto Error que representa la excepcin Sys.FormatException.
Error.invalidOperation
(Funcin)
Crea un objeto Error que representa la excepcin Sys.InvalidOperation
Exception.
Error.message (Campo) Representa la descripcin del error.
Error.name (Campo) Representa el nombre que identifica el error.
Error.notImplemented
(Funcin)
Crea un objeto Error que representa la excepcin Sys.NotImplemented
Exception.
Error.parameterCount
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ParameterCount
Exception.
Error.popStackFrame
(Funcin)
Actualiza las propiedades fileName y lineNumber de una instancia
de Error para indicar dnde se produjo el error en lugar de dnde se cre
el error. Utilice esta funcin si va a crear tipos de error personalizados.
Comentarios
Las extensiones de Error forman parte de Microsoft Ajax Library. Agregan funcionalidad al objeto de JavaScript Error
integrado.
Tipos de error
Las extensiones de tipo Error generan un tipo Error con campos adicionales que representan los detalles de la
excepcin. Todas las extensiones de tipo Error agregan al menos un campo name para identificar la excepcin. Puede
comprobar el campo name de la excepcin para determinar qu accin debe realizar.
En el ejemplo siguiente se muestra cmo probar la propiedad Error.name para la excepcin Sys.ArgumentNullException
try{ }
catch (e) {
if (e.name === "Sys.ArgumentNullException"){
// Code here ot handle exception.
}
}
Optimizar el control de errores de script de cliente para los modos de depuracin y
lanzamiento
Las extensiones del objeto AJAX de ASP.NET Error proporcionan funciones de control de errores de script de cliente
adicionales.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 11 de 98
ASP.NET proporciona modos de compilacin de aplicacin de depuracin y lanzamiento para trabajar con el script de
cliente AJAX. Estos modos permiten provocar excepciones en scripts de depuracin que sean tiles para el proceso de
depuracin y, al mismo tiempo, reducir el tamao del cdigo de la versin de lanzamiento para mejorar el
rendimiento. El modo de depuracin proporciona caractersticas adicionales de control de errores, como la
comprobacin de tipo y argumento, y proporciona mensajes de error ms detallados que el modo de lanzamiento.
Ejemplo
En el ejemplo siguiente se muestra cmo crear una nueva instancia de Error invocando el mtodo create del objeto
AJAX de ASP.NET Error.
function validateNumberRange(input, min, max)
{
// Verify the required parameters were defined.
if (input === undefined)
{
// Throw a standard exception type.
var err = Error.argumentNull("input", "A parameter was undefined.");
throw err;
}
else if (min === undefined)
{
var err = Error.argumentNull("min", "A parameter was undefined.");
throw err;
}
else if (max === undefined)
{
var err = Error.argumentNull("max", "A parameter was undefined.");
throw err;
}
else if (min >= max)
{
var err = Error.invalidOperation("The min parameter must be smaller
than max parameter.");
throw err;
}
else if (isNaN(input))
{
msg = "A number was not entered. ";
msg += String.format("Please enter a number between {0} and {1}.",
min, max);
var err = Error.create(msg);
throw err;
}
else if (input < min || input > max)
{
msg = "The number entered was outside the acceptable range. ";
msg += String.format("Please enter a number between {0} and {1}.",
min, max);
var err = Error.create(msg);
throw err
}
alert("The number entered was within the acceptable range.");
}
var input = undefined;
var min = -10;
var max = 10;
// Result: A thrown ErrorArgumentNull exception with the following Error
// object message:
// "Sys.ArgumentNullException: A parameter was undefined. Parameter name:
// input"
validateNumberRange(input, min, max);
1.1.4.1. Campos de tipo de error
Campos
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 12 de 98
Name Descripcin
Error.message (Campo) Representa la descripcin del error.
Error.name (Campo) Representa el nombre que identifica el error.
1.1.4.2. Funciones de tipo de error
Funciones
Name Descripcin
Error.argument (Funcin) Crea un objeto Error que representa la excepcin Sys.ArgumentException.
Error.argumentNull
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ArgumentNull
Exception.
Error.argumentOutOfRange
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ArgumentOutOf
RangeException.
Error.argumentType
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ArgumentType
Exception.
Error.argumentUndefined
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ArgumentUndefined
Exception.
Error.create (Funcin) Crea un objeto Error que tiene informacin de error adicional opcional.
Error.format (Funcin) Crea un objeto Error que representa la excepcin Sys.FormatException.
Error.invalidOperation
(Funcin)
Crea un objeto Error que representa la excepcin Sys.InvalidOperation
Exception.
Error.notImplemented
(Funcin)
Crea un objeto Error que representa la excepcin Sys.NotImplemented
Exception.
Error.parameterCount
(Funcin)
Crea un objeto Error que representa la excepcin Sys.ParameterCount
Exception.
Error.popStackFrame
(Funcin)
Actualiza las propiedades fileName y lineNumber de una instancia
de Error para indicar dnde se produjo el error en lugar de dnde se cre el
error. Utilice esta funcin si va a crear tipos de error personalizados.
1.1.5. Extensiones de tipo de funcin
Proporciona funciones estticas que extienden el tipo Function integrado de ECMAScript (JavaScript) mediante la
inclusin de detalles de excepcin y compatibilidad con los modos de compilacin (depuracin o lanzamiento) de la
aplicacin.
Espacio de nombres: ninguno. Esta extensin de tipo es global y no forma parte de un espacio de nombres.
Hereda: nada
var func = function Function(param1, param2, paramN);
Extensiones de miembro
Name Descripcin
Funcin
Function.createCallback
Crea una funcin de devolucin de llamada que retiene el parmetro
inicialmente utilizado durante una creacin de objetos.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 13 de 98
Funcin
Function.createDelegate
Crea una funcin de delegado que retiene el contexto utilizado inicialmente
durante una creacin de objetos.
Funcin
Function.emptyMethod
Una funcin que no hace nada.
Funcin
Function.validateParams
Valida que los parmetros a un mtodo son tal y como se espera.
1.1.5.1. Funciones de tipo de funcin
Funciones
Name Descripcin
Funcin Function.createCallback Crea una funcin de devolucin de llamada que retiene el parmetro
inicialmente utilizado durante una creacin de objetos.
Funcin Function.createDelegate Crea una funcin de delegado que retiene el contexto utilizado
inicialmente durante una creacin de objetos.
Funcin Function.emptyMethod Una funcin que no hace nada.
Funcin
Function.validateParameters
Valida que los parmetros a un mtodo son tal y como se espera.
1.1.6. Extensiones de tipo de nmero
Extiende la funcionalidad ECMAScript (JavaScript) Number bsica con mtodos estticos y de instancia.
Espacio de nombres: ninguno. Esta extensin de tipo es global y no forma parte de un espacio de nombres.
Hereda: nada
var numberVar = Number.parseInvariant("4");
Extensiones de miembro
Name Descripcin
Number.format (Funcin) Aplica formato a un nmero utilizando la referencia cultural de todos los
idiomas.
Number.localeFormat
(Funcin)
Aplica formato a un nmero utilizando la referencia cultural actual.
Number.parseInvariant
(Funcin)
Devuelve un valor numrico de una representacin en forma de cadena de un
nmero.
Number.parseLocale
(Funcin)
Crea un nmero a partir de una cadena especfica de la configuracin regional.
Comentarios
Las extensiones de Number forman parte de Microsoft Ajax Library. Agregan funcionalidad al objeto JavaScript Number
y proporcionan miembros que resultan ms familiares a los programadores de .NET.
Ejemplo
En el ejemplo siguiente se muestra cmo llamar a la funcin de extensin AJAX de ASP.NET parseInvariant para crear
un nmero a partir de la representacin en forma de cadena de un nmero.
var a = Number.parseInvariant("4");
var b = new Number(2);
var c = Number.parseInvariant("1.53") + a + b;
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 14 de 98
// View the results: "7.53"
alert(c);
1.1.6.1. Funciones de tipo de nmero
Funciones
Name Descripcin
Number.format (Funcin) Aplica formato a un nmero utilizando la referencia cultural de todos los
idiomas.
Number.localeFormat
(Funcin)
Aplica formato a un nmero utilizando la referencia cultural actual.
Number.parseInvariant
(Funcin)
Devuelve un valor numrico de una representacin en forma de cadena de un
nmero.
Number.parseLocale
(Funcin)
Crea un nmero a partir de una cadena especfica de la configuracin regional.
1.1.7. Extensiones de tipo de objeto
Proporciona una funcionalidad extendida similar a la reflexin al objeto ECMAScript (JavaScript) Object base.
Espacio de nombres: ninguno. Esta extensin de tipo es global y no forma parte de un espacio de nombres.
Hereda: nada.
var objectVar = new Object();
Extensiones de miembro
Name Descripcin
Object.getType (Funcin) Devuelve el tipo de una instancia de objeto especificada.
Object.getTypeName
(Funcin)
Devuelve una cadena que identifica el nombre de tipo en tiempo de
ejecucin de un objeto.
Comentarios
Las extensiones de Object forman parte de Microsoft Ajax Library. Agregan funcionalidad al objeto de JavaScript
Object integrado. Las extensiones Objectproporcionan informacin relacionada con la reflexin acerca de una instancia
con tipo. Use estos mtodos para descubrir el tipo y el nombre de tipo de un objeto.
Ejemplo
En el ejemplo siguiente se muestra cmo utilizar la extensin de Object. El cdigo crea una nueva instancia de Object e
invoca la extensin de la funcin getType para tener acceso a la instancia de tipo que representa un objeto. Invoca
tambin la extensin de la funcin getTypeName para tener acceso al nombre de tipo.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Samples</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<script type="text/javascript">
Type.registerNamespace('Samples');
// Define and register a Samples.Rectangle class.
Samples.Rectangle = function(width, height)
{
this._width = width;
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 15 de 98
this._height = height;
}
Samples.Rectangle.prototype.getWidth = function() {
return (this._width === undefined) ? null : this._width;
}
Samples.Rectangle.prototype.getHeight = function() {
return (this._width === undefined) ? null : this._height;
}
Samples.Rectangle.registerClass('Samples.Rectangle');
// Define and register a Samples.Square class.
Samples.Square = function(length)
{
this._length = length;
}
Samples.Square.prototype.getLength = function() {
return (this._length === undefined) ? null : this._length;
}
Samples.Square.prototype.setLength = function(length) {
this._length = length;
}
Samples.Square.registerClass('Samples.Square');
// Create instances of Square and Rectangle & discover their types
Samples.testObjectReflection = function()
{
var width = 200;
var height = 100;
var a = new Samples.Rectangle(width, height);
var length = 50;
var b = new Samples.Square(length);
var name = Object.getTypeName(a);
// Output "The type name of object a is: Samples.Rectangle"
alert("The type name of object a is: " + name);
var isSquare = Samples.Rectangle.isInstanceOfType(b)
// Output "Object b is an instance of type Square: false"
alert("Object b is an instance of type Square: " +
isSquare);
var c = Object.getType(b);
name = Object.getTypeName(c);
// Output "The type name of object c is: Function"
alert("The type name of object c is: " + name);
var isSquare = Samples.Square.isInstanceOfType(c);
if (isSquare)
{
var newLength = a.getWidth();
c.setLength(newLength);
alert("Object c is a Square with a length of: " +
c.getLength());
}
}
// Run the sample.
Samples.testObjectReflection();
</script>
</form>
</body>
</html>
1.1.7.1. Funciones de tipo de objeto
Funciones
Name Descripcin
Object.getType (Funcin) Devuelve el tipo de una instancia de objeto especificada.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 16 de 98
Object.getTypeName
(Funcin)
Devuelve una cadena que identifica el nombre de tipo en tiempo de
ejecucin de un objeto.
1.1.8. Extensiones de tipo de cadena
Proporciona extensiones al objeto ECMAScript (JavaScript) String base mediante la inclusin de mtodos estticos y de
instancia.
Espacio de nombres: ninguno. Esta extensin de tipo es global y no forma parte de un espacio de nombres.
Hereda: String
var stringVar = new String();
Extensiones de miembro
Name Descripcin
String.endsWith
(Funcin)
Determina si el final del objeto String coincide con la cadena especificada.
String.format
(Funcin)
Reemplaza cada elemento de formato de un objeto String por el equivalente
textual del valor de un objeto correspondiente.
String.localeFormat
(Funcin)
Reemplaza los elementos de formato de un objeto String por el equivalente
textual del valor de un objeto correspondiente. Se utiliza la referencia cultural
actual para dar formato a las fechas y nmeros.
String.startsWith
(Funcin)
Determina si el inicio del objeto String coincide con la cadena especificada.
String.trim (Funcin) Quita los espacios en blanco iniciales y finales de una instancia de objeto String.
String.trimEnd
(Funcin)
Quita el espacio en blanco final de una instancia de objeto String.
String.trimStart
(Funcin)
Quita el espacio en blanco inicial de una instancia de objeto String.
Comentarios
Las extensiones de String forman parte de Microsoft Ajax Library. Agregan funcionalidad al objeto JavaScript String y
proporcionan miembros que resultan ms familiares a los programadores de .NET.
Ejemplo
En el ejemplo siguiente se muestra cmo crear una instancia de un objeto String e invocar a la funcin String.format de
Microsoft Ajax Library para reemplazar los elementos de formato de la instancia de String por nuevos valores.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Sample</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<script type="text/javascript">
function runExample()
{
var newStr = new String(" This is a string ");
// Remove the white space at the beginning and end.
var trimmedStr = newStr.trim();
// Displays: "The string with white spaces removed:
// This is a string."
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 17 de 98
alert("The string with white spaces removed:" + trimmedStr
+ ".");
}
runExample();
</script>
</form>
</body>
</html>
1.1.8.1. Funciones de tipo de cadena
Funciones
Name Descripcin
String.endsWith
(Funcin)
Determina si el final del objeto String coincide con la cadena especificada.
String.format
(Funcin)
Reemplaza cada elemento de formato de un objeto String por el equivalente
textual del valor de un objeto correspondiente.
String.localeFormat
(Funcin)
Reemplaza los elementos de formato de un objeto String por el equivalente
textual del valor de un objeto correspondiente. Se utiliza la referencia cultural
actual para dar formato a las fechas y nmeros.
String.startsWith
(Funcin)
Determina si el inicio del objeto String coincide con la cadena especificada.
String.trim (Funcin) Quita los espacios en blanco iniciales y finales de una instancia de objeto String.
String.trimEnd
(Funcin)
Quita el espacio en blanco final de una instancia de objeto String.
String.trimStart
(Funcin)
Quita el espacio en blanco inicial de una instancia de objeto String.
1.2. Type (Clase)
Proporciona un sistema de establecimiento y reflexin de tipos para las funciones de programacin orientada a objetos
de ECMAScript (JavaScript).
Espacio de nombres: ninguno. Los mtodos Type son globales y no forman parte de un espacio de nombres.
Hereda: window.
Type.registerNamespace(string);
Miembros
Name Descripcin
Type.callBaseMethod (Mtodo) Invoca un mtodo de clase base con argumentos especificados.
Type.createCallback (Mtodo) Crea un mtodo de devolucin de llamada con la funcin de devolucin
de llamada y el parmetro que se pasa especificado.
Type.createDelegate (Mtodo) Crea una funcin de delegado que conserva el contexto de su creacin. El
contexto define la instancia de objeto a la que apunta la palabra
clave this.
Type.getBaseMethod (Mtodo) Devuelve la implementacin de un mtodo de la clase base de la
instancia especificada.
Type.getBaseType (Mtodo) Devuelve el tipo base de una instancia.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 18 de 98
Type.getInterfaces (Mtodo) Devuelve un objeto Array que contiene la lista de interfaces
implementadas por el tipo.
Type.getName (Mtodo) Devuelve el nombre de tipo de instancia.
Type.getRootNamespaces
(Mtodo)
Devuelve un objeto Array que contiene las referencias a todos los
espacios de nombres de la raz de la aplicacin cliente.
Type.implementsInterface
(Mtodo)
Determina si el tipo implementa una interfaz especificada.
Type.inheritsFrom (Mtodo) Determina si el tipo se hereda del tipo primario especificado.
Type.initializeBase (Mtodo) Inicializa la clase base y sus miembros en el contexto de una instancia
determinada, que proporciona el modelo de herencia e inicializacin de
los miembros base.
Type.isClass (Mtodo) Devuelve un valor que indica si el tipo especificado es una clase.
Type.isEnum (Mtodo) Indica si el tipo especificado es una enumeracin.
Type.isFlags (Mtodo) Obtiene un valor que indica si el tipo especificado es un entero de
marcadores.
Type.isImplementedBy
(Mtodo)
Determina si una instancia implementa la interfaz especificada.
Type.isInstanceOfType
(Mtodo)
Determina si un objeto es una instancia de un tipo especificado o de uno
de sus tipos derivados.
Type.isInterface (Mtodo) Devuelve un valor que indica si el tipo especificado es una interfaz.
Type.isNamespace (Mtodo) Devuelve un valor que indica si el objeto especificado es un espacio de
nombres.
Type.parse (Mtodo) Devuelve una instancia del tipo especificado por nombre de tipo.
Type.registerClass (Mtodo) Registra una clase definida por el constructor, con un tipo base opcional
y con interfaces.
Type.registerEnum (Mtodo)
(Microsoft Ajax)
Registra una enumeracin.
Type.registerInterface (Mtodo) Registra una interfaz especificada por su constructor.
Type.registerNamespace
(Mtodo)
Registra y crea un espacio de nombres.
Type.resolveInheritance
(Mtodo)
Copia los miembros de la clase base en el prototipo asociado a la clase
derivada y contina este proceso por la cadena de herencia. Esto permite
aplicar reflexin a los miembros heredados de un tipo derivado.
Comentarios
Los mtodos de la clase Type agregan las funciones de programacin orientada a objetos al cdigo ECMAScript
(JavaScript) creando un sistema de establecimiento de tipos y habilitando la reflexin de tipos. Esta clase permite
registrar las relaciones y estructura del cdigo, que incluyen clases, interfaces, clases base y enumeraciones. Puede
utilizar mtodos de reflexin Type como isInstanceOfType e isImplementedBy para inspeccionar las clases. El nombre
del objeto de JavaScript Function integrado cambia a Type. Por tanto, muchos de los mtodos Type estarn
disponibles para sus propios objetos de tipo personalizados creados a travs de las API Type.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 19 de 98
Derivar una clase de una clase base
Los mtodos Type slo admiten la herencia nica, pero permiten varias interfaces. Para derivar una clase de otra siga
estos pasos:
Al registrar la clase derivada, especifique una clase base en el parmetro baseType del mtodo registerClass.
Inicialice la clase base de la clase derivada invocando el mtodo initializeBase desde el constructor de la clase
derivada.
Llamar a un mtodo de clase base desde un miembro de clase derivada
Puede llamar a los mtodos de clase base desde miembros de clase derivada invocando el mtodo Type.callBase
Method. Esto sirve para invalidar los mtodos. Por ejemplo, llamar a la clase base si invalida el mtodo Sys.Component.
dispose en una clase derivada.
En el cdigo siguiente se muestra cmo registrar una clase que se deriva de una clase base. Llama al
mtodo registerClass del tipo que se va a registrar. La clase base se especifica en el parmetro baseType. La clase
derivada inicializa su clase base llamando al mtodo initializeBase desde su constructor.
Type.registerNamespace('Samples');
Samples.A = function(){}
// Register Samples.A Class
Samples.A.registerClass('Samples.A');
Samples.B = function(){}
// Register Samples.B Class
Samples.B.registerClass('Samples.B');
Samples.C = function(){
// Initialize the base.
Samples.C.initializeBase(this);
}
// Register Samples.C Class as derviving from Samples A and implementing
Samples.B
Samples.C.registerClass('Samples.C', Samples.A, Samples.B);

Implementar una interfaz
Los mtodos Microsoft Ajax Library Type admiten interfaces. Implementa una interfaz al llamar al mtodo registerClass
especificando una interfaz registrada en el parmetro interfaceTypes.
Ejemplo
En el ejemplo siguiente se muestra cmo crear una clase derivada que implementa una interfaz. El cdigo invoca el
mtodo registerClass con una clase base especificada en el parmetro baseType y una interfaz especificada en el
parmetro interfaceTypes. La clase base se inicializa en el contexto de una instancia determinada invocando
initializeBase desde el constructor de la clase derivada. A continuacin, se llama al mtodo implementsInterface para
determinar la interfaz de una instancia de clase.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Samples</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager01">
</asp:ScriptManager>
<script type="text/javascript">
// Register classes to test.
Type.registerNamespace('Samples');
Samples.A = function(){}
// Register Samples.A Class
Samples.A.registerClass('Samples.A');
Samples.B = function(){}
// Register Samples.B Class
Samples.B.registerClass('Samples.B');
Samples.C = function(){
// Initialize the base.
Samples.C.initializeBase(this);
}
// Register Samples.C Class as derviving from Samples A and
// implementing Samples.B
Samples.C.registerClass('Samples.C', Samples.A, Samples.B);
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 20 de 98
var isDerived;
isDerived = Samples.B.inheritsFrom(Samples.A);
// Output: "false".
alert(isDerived);
isDerived = Samples.C.inheritsFrom(Samples.A);
// Output: "true".
alert(isDerived);
var implementsInterface
implementsInterface = Samples.C.implementsInterface(Samples.B);
// Output: "true".
alert(implementsInterface);
</script>
</form>
</body>
</html>
1.3. Mtodos abreviados globales
Algunos mtodos de Microsoft AJAX Library se utilizan con tanta frecuencia en los scripts de cliente que se
proporcionan accesos directos para ayudarle a simplificar sus scripts. En la tabla siguiente se indican los mtodos
abreviados disponibles.
Nombre Descripcin
Sys.UI.DomEvent $addHandler
(Mtodo)
Proporciona un acceso directo al mtodo Sys.UI.DomEvent.
addHandler, que agrega un controlador de eventos DOM al elemento
de DOM que expone el evento.
Sys.UI.DomEvent.$addHandlers
(Mtodo)
Proporciona un acceso directo al mtodo Sys.UI.DomEvent.
addHandlers, que agrega una lista de controladores de eventos DOM al
elemento DOM que expone los eventos.
Sys.UI.DomEvent.$clearHandlers
(Mtodo)
Proporciona un acceso directo al mtodo Sys.UI.DomEvent.clear
Handlers. Este mtodo quita todos los controladores de eventos DOM
de un elemento DOM que se agregaron a travs de los mtodos
Sys.UI.DomEvent.addHandler oSys.UI.DomEvent.addHandlers.
Sys.Component $create (Mtodo) Proporciona un acceso directo al mtodo Sys.Component.create, que
crea e inicializa un componente del tipo especificado.
Sys.Application $find (Mtodo) Proporciona un acceso directo al mtodo Sys.Application.find
Component, que devuelve el objeto Component especificado.
Sys.UI.DomElement $get
(Mtodo)
Proporciona un acceso directo al mtodo Sys.UI.DomElement.
getElementById, que obtiene un elemento DOM con el atributo
id especificado.
Sys.UI.DomEvent
$removeHandler (Mtodo)
Proporciona un acceso directo al mtodo System.UI.DomEvent.
removeHandler, que quita un controlador de eventos DOM del
elemento DOM que expone el evento.
2. Sys (Espacio de nombres)
Proporciona el espacio de nombres raz para ASP.NET AJAX.
Tipos
Name Descripcin
Sys.Application (Clase) Proporciona un objeto en tiempo de ejecucin que expone los
eventos de cliente y administra los componentes de cliente que
se registran con la aplicacin.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 21 de 98
Sys.ApplicationLoadEventArgs (Clase) La utiliza la clase Application para contener los argumentos del
evento load.
Sys.Browser (Clase) Proporciona informacin sobre el explorador web actual.
Sys.CancelEventArgs (Clase) Proporciona la clase base de los eventos que pueden cancelarse.
Sys.CollectionChange (Clase) Describe un cambio realizado en una coleccin.
Sys.CommandEventArgs (Clase) Proporciona una clase para los eventos de comando.
Sys.Component (Clase) Proporciona la clase base de las clases Control y Behavior y de
cualquier otro objeto cuya duracin deba ser administrada por la
biblioteca de cliente AJAX de ASP.NET.
Sys.CultureInfo (Clase) Representa una definicin de referencia cultural que se puede
aplicar a los objetos que aceptan una configuracin relacionada
con la referencia cultural.
Sys.Debug (Clase) Proporciona funciones de depuracin y traza para el cdigo
cliente ECMAScript (JavaScript).
Sys.EventArgs (Clase) Proporciona una clase base para las clases que los orgenes de
eventos utilizan para pasar informacin sobre los argumentos del
evento.
Sys.EventHandlerList (Clase) Crea un diccionario de eventos de cliente para un componente,
con nombres de evento como claves y los controladores
asociados como valores.
Sys.HistoryEventArgs (Clase) Sys.Application (Clase) utiliza esta clase para contener los
argumentos del evento navigate.
Sys.IContainer (Interfaz) Proporciona una interfaz comn para todos los componentes que
pueden contener otros componentes.
Sys.IDisposable (Interfaz) Proporciona una interfaz comn para las tareas definidas por la
aplicacin de cierre, liberacin o restablecimiento de recursos
almacenados por instancias de una clase Microsoft Ajax Library
registrada.
Sys.INotifyDisposing (Interfaz) Indica que el tipo que implementa la interfaz proporciona
notificaciones de disposing.
Sys.INotifyPropertyChange (Interfaz) Define el evento propertyChanged.
Sys.NotifyCollectionChangedAction
(Enumeracin)
Describe cmo ha cambiado una coleccin.
Sys.NotifyCollectionChangedEventArgs
(Clase)
Describe cmo cambi la coleccin.
Sys.Observer (Clase) Agrega funcionalidad de actualizacin y administracin a los
objetos de destino, como matrices, elementos de DOM y objetos.
Sys.PropertyChangedEventArgs (Clase) Esta clase la usa el evento propertyChanged para indicar la
propiedad que ha cambiado.
Sys.Res (Clase) Proporciona mensajes de excepcin estticos y neutrales en
cuanto a la referencia cultural que se utilizan en el marco de
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 22 de 98
trabajo de Microsoft Ajax Library.
Sys.StringBuilder (Clase) Proporciona un mecanismo para concatenar cadenas.
Tipos de excepcin Sys Provoca un Error que representa las excepciones producidas por
el marco de trabajo de Microsoft Ajax Library.Estas excepciones
se crean dinmicamente utilizando las funciones de extensin de
tipo Error y no se puede crear instancias de ellas ni invocarse.
2.1. Sys.Application (Clase)
Proporciona un objeto en tiempo de ejecucin que expone los eventos de cliente y administra los componentes de
cliente que se registran con la aplicacin. Los miembros de este objeto estn disponibles globalmente una vez
inicializada la aplicacin cliente. Los miembros se pueden invocar sin crear una instancia de la clase.
Espacio de nombres: Sys
Hereda: Sys.Component, Sys.IContainer
Sys.Application.addComponent(componentVar);
Constructores
Name Descripcin
Sys.Application (Constructor) Inicializa una nueva instancia de la clase Sys.Application.
Miembros
Name Descripcin
Sys.Application.init (Evento) Se provoca una vez cargados todos los scripts pero antes de
que se cree ningn objeto.
Sys.Application.load (Evento) Se provoca una vez cargados todos los scripts y una vez
creados e inicializados los objetos en la aplicacin.
Sys.Application.navigate (Evento) Se provoca cuando el usuario hace clic en el botn Atrs o
Adelante del explorador.
Sys.Application.unload (Evento) Se provoca antes de que se eliminen todos los objetos de la
aplicacin cliente.
Sys.Application.addComponent (Mtodo) Registra un componente con la aplicacin y lo inicializa si
no se ha inicializado todava.
Sys.Application.addHistoryPoint (Mtodo) Crea un punto del historial y lo agrega a la pila del historial
del explorador.
Sys.Application.beginCreateComponents
(Mtodo)
Indica a la aplicacin que inicie la creacin de
componentes.
Sys.Application.beginUpdate (Mtodo) Lo llama el mtodo Sys.Application.beginUpdate (Mtodo)
para indicar que ha comenzado el proceso de configuracin
de propiedades de componentes de la aplicacin.
Sys.Application.dispose (Mtodo) Libera los recursos y dependencias que mantiene la
aplicacin cliente.
Sys.Application.disposeElement (Mtodo) Libera recursos y dependencias asociados a un elemento y
sus nodos secundarios.
Sys.Application.endCreateComponents Indica a la aplicacin que finalice la creacin de
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 23 de 98
(Mtodo) componentes.
Sys.Application.endUpdate (Mtodo) Lo llama el mtodo Sys.Application.endCreateComponents
(Mtodo) para indicar que el proceso de actualizacin de la
aplicacin ha finalizado.
Sys.Application.findComponent (Mtodo) Devuelve el objeto Sys.Component especificado.
Sys.Application $find (Mtodo) Proporciona un acceso directo al mtodo findComponent.
Sys.Application.getComponents (Mtodo) Devuelve una matriz de todos los componentes registrados
con la aplicacin a travs del mtodoaddComponent.
Sys.Application.initialize (Mtodo) Inicializa la aplicacin y provoca el evento load.
Sys.Application.notifyScriptLoaded
(Mtodo)
Lo llama un script al que se hace referencia para indicar que
el script se ha cargado.
Sys.Application.raiseLoad (Mtodo) Provoca el evento load.
Sys.Application.raisePropertyChanged
(Mtodo)
Genera el evento Sys.INotifyPropertyChange.property
Changed (Evento).
Sys.Application.registerDisposableObject
(Mtodo)
Registra un objeto que requerir ser eliminado con la
aplicacin.
Sys.Application.removeComponent
(Mtodo)
Quita el objeto de la aplicacin y lo elimina si es posible.
Sys.Application.unregisterDisposableObject
(Mtodo)
Anula el registro de un objeto descartable en la aplicacin.
Sys.Application.updated (Mtodo) Lo llama el mtodo Sys.Application.endUpdate (Mtodo)
como marcador de posicin para lgica adicional.
Sys.Application.enableHistory (Propiedad) Obtiene o establece un valor que indica si la aplicacin web
admite la administracin de puntos del historial.
Sys.Application.isCreatingComponents
(Propiedad)
Obtiene un valor que indica si la aplicacin est en el
proceso de crear componentes.
Sys.Application.isDisposing (Propiedad) Obtiene un valor que indica si la aplicacin est en el
proceso de desechar sus recursos.
Comentarios
El objeto Application proporciona funciones y eventos que permiten el desarrollo de componentes cliente. El
objeto Application es una instancia nica de la clase Sys._Application privada. El objeto Application se crea cuando
una pgina AJAX de ASP.NET se consulta en el explorador y se conserva durante el ciclo de vida de la pgina. El
objeto Application es responsable de provocar eventos del ciclo de vida de la pgina como pageInit, pageLoad
y pageUnload y de administrar la eliminacin de los componentes registrados.
Eventos
El objeto Application proporciona los eventos init, load y unload, y hereda los eventos disposing y propertyChanged
de la clase Component base. Todos estos eventos se aplican al ciclo de vida de la aplicacin cliente en el explorador.
Si se admite la representacin parcial de pginas y la pgina contiene un control UpdatePanel, la
clase PageRequestManager proporciona eventos adicionales que se aplican a las partes de la pgina que se representan
de forma asincrnica.
Los componentes individuales pueden exponer eventos que slo se apliquen al componente. Tambin pueden tener
acceso a los eventos de nivel de aplicacin mediante el objeto Application.
Normalmente, los desarrolladores de pginas debern colocar su cdigo en el evento load. En ese punto del ciclo de
vida de la pgina, todos los scripts estn cargados y todos los componentes se han creado y se pueden utilizar. Todo el
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 24 de 98
cdigo que se incluya en una funcin denominada pageLoad se ejecutar automticamente cuando se cargue la
pgina.
Los programadores de componentes pueden tener acceso a otros eventos o enlazar controladores adicionales a los
eventos load o unload invocando el mtodo de descriptor de acceso del evento add_ y pasando la funcin del
controlador. En el siguiente ejemplo se muestra cmo enlazar una funcin denominada myUnloadHandler al
evento unload.
Sys.Application.add_unload(myUnloadHandler)
Cuando ya no se necesite un evento ni sus controladores, puede llamar al mtodo de descriptor de acceso remove_,
como en el ejemplo siguiente:
Sys.Application.remove_unload(myUnloadHandler);
Puede asociar controladores adicionales a un evento llamando al descriptor de acceso add_ una vez para cada
controlador. Los controladores se quitan individualmente llamando al mtodo de descriptor de acceso remove_.
Agregar componentes
En la mayora de las situaciones, deber agregar los componentes a una aplicacin mediante el comando $create. Una
vez registrado un componente con la aplicacin, puede tener acceso a l en la aplicacin llamando al
mtodo findComponent o al mtodo abreviado $find. Puede obtener una lista de todos los componentes disponibles
llamando al mtodo getComponents.
Referencia a archivos de script
Si hace referencia a un archivo de script independiente (archivo .js) para su uso con la representacin parcial de la
pgina, el cdigo del archivo de script puede llamar al mtodo notifyScriptLoaded, sin embargo, ya no es
necesario. Este mtodo notifica a la aplicacin que el script se ha terminado de cargar.
2.2. Sys.ApplicationLoadEventArgs (Clase)
La utiliza la clase Application para contener los argumentos del evento load.
Espacio de nombres: Sys
Hereda: nada
var a = new Sys.ApplicationLoadEventArgs(components, isPartialLoad);
Constructores
Name Descripcin
Sys.ApplicationLoadEventArgs
(Clase)
Inicializa una nueva instancia de la clase ApplicationLoadEvent
Args.
Miembros
Name Descripcin
Sys.ApplicationLoadEventArgs.components
(Propiedad)
Obtiene la lista de componentes que se crearon desde la
ltima vez que se gener el evento load.
Sys.ApplicationLoadEventArgs.isPartialLoad
(Propiedad)
Devuelve un valor que indica si la pgina est ocupada con
una actualizacin parcial.
2.3. Sys.Browser (Clase)
Proporciona informacin sobre el explorador web actual.
Espacio de nombres: Sys
Hereda: nada
var browser = Sys.Browser();
Miembros
Nombre Descripcin
Sys.Browser.agent (Campo) Obtiene un objeto que representa el agente de usuario del
explorador.
Sys.Browser.documentMode (Campo) Obtiene un valor que indica el modo de compatibilidad de
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 25 de 98
documentos del explorador.
Sys.Browser.hasDebuggerStatement
(Campo)
Obtiene un valor que indica si el explorador admite
instrucciones de depuracin.
Sys.Browser.name (Campo) Obtiene el nombre del explorador.
Sys.Browser.version (Campo) Obtiene el nmero de versin del explorador.
Comentarios
El objeto Sys.Browser determina qu explorador se utiliza y proporciona alguna informacin sobre l. Puede utilizar
este objeto para ayudar a personalizar el cdigo segn los requisitos o funciones nicos del explorador.
2.4. Sys.CancelEventArgs (Clase)
Proporciona la clase base de los eventos que pueden cancelarse.
Espacio de nombres: Sys
Hereda: Sys.EventArgs
var args = new Sys.CancelEventArgs();
Constructores
Name Descripcin
Sys.CancelEventArgs (Constructor) Inicializa una nueva instancia de la clase CancelEventArgs.
Miembros
Name Descripcin
Sys.CancelEventArgs cancel
(Propiedad)
Obtiene o establece un valor que especifica si el origen de eventos debe
cancelar la operacin que provoc el evento.
Nota
Esta clase contiene miembros privados que admiten la infraestructura de script de cliente y no est prevista su
utilizacin directa desde el cdigo. Los nombres de los miembros privados comienzan con un carcter de
subrayado (_).
Comentarios
Los controladores de eventos pueden utilizar la propiedad cancel para cancelar la operacin en curso. La semntica de
cancelacin de un evento depende del origen del evento.
Ejemplo
En el ejemplo siguiente se muestra cmo utilizar la propiedad cancel de la clase InitializeRequestEventArgs, que se
deriva de la clase CancelEventArgs. En este ejemplo, un controlador del evento initializeRequest permite que se cancele
una devolucin de datos asincrnica. El script del controlador de eventos determina si una devolucin de datos
asincrnica est actualmente en curso mediante la propiedad isInAsyncPostBack de la clase PageRequestManager. Si
una devolucin de datos est en curso, se utiliza la propiedad postBackElement para determinar el identificador del
elemento que produjo la devolucin de datos. Si el identificador coincide con el identificador de un botn que cancela
la devolucin de datos, se llama al mtodo abortPostBack. De lo contrario, se cancela la solicitud actual mediante la
propiedad cancel de la clase CancelEventArgs.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void ButtonClick_Handler(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);
}
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 26 de 98
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager initializeRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
div.UpdatePanelStyle{
width: 300px;
height: 300px;
}
div.AlertStyle {
font-size: smaller;
background-color: #FFC080;
height: 20px;
visibility: hidden;
}
div.Container {
display: inline;
float: left;
width: 330px;
height: 300px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript" language="javascript">
var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';
Sys.WebForms.PageRequestManager.getInstance().
add_initializeRequest(CheckStatus);
function CheckStatus(sender, args)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm.get_isInAsyncPostBack() &
args.get_postBackElement().id == 'CancelRefresh') {
prm.abortPostBack();
}
else if (prm.get_isInAsyncPostBack() &
args.get_postBackElement().id == 'RefreshButton') {
args.set_cancel(true);
ActivateAlertDiv('visible', 'Still working on previous
request.');
}
else if (!prm.get_isInAsyncPostBack() &
args.get_postBackElement().id == 'RefreshButton') {
ActivateAlertDiv('visible', 'Processing....');
}
}
function ActivateAlertDiv(visString, msg)
{
var adiv = $get(divElem);
var aspan = $get(messageElem);
adiv.style.visibility = visString;
aspan.innerHTML = msg;
}
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 27 de 98
</script>
<div class="Container" >
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional"
runat="Server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server"
GroupingText="UpdatePanel"
CssClass="UpdatePanelStyle">
Last update:
<%=DateTime.Now.ToString() %>.
<asp:Button runat="server" ID="RefreshButton"
Text="Refresh"
OnClick="ButtonClick_Handler" />
<div id="AlertDiv" class="AlertStyle">
<span id="AlertMessage"></span>
&nbsp;&nbsp;&nbsp;&nbsp;
<asp:LinkButton ID="CancelRefresh"
runat="server">cancel</asp:LinkButton>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</form>
</body>
</html>
2.5. Sys.CollectionChange (Clase)
Describe un cambio realizado en una coleccin.
Espacio de nombres: Sys
Hereda: nada
var MyCChg = new Sys.CollectionChange(action, newItems, newStartingIndex,
oldItems, oldStartingIndex);
Constructores
Sys.CollectionChange (Constructor)
Crea un objeto CollectionChange.
Miembros
Sys.CollectionChange.action (Campo)
Un valor de enumeracin NotifyCollectionChangedAction.
Sys.CollectionChange.newItems (Campo)
(Opcional) Los elementos que se agregaron cuando el objeto NotifyCollectionChangedAction es add.
Sys.CollectionChange.newStartingIndex (Campo)
(Opcional) El ndice donde se han insertado los nuevos elementos.
Sys.CollectionChange.oldItems (Campo)
(Opcional) Los elementos que se quitaron cuando el objeto NotifyCollectionChangedAction es remove.
Sys.CollectionChange.oldStartingIndex (Campo)
(Opcional) El ndice donde se han quitado los elementos antiguos.
2.6. Sys.CommandEventArgs (Clase)
Proporciona una clase para los eventos de comando.
Espacio de nombres: Sys
Hereda: Sys.CommandEventArgs
var argsObj = new Sys.CommandEventArgs(commandName, commandArgument,
commandSource);
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 28 de 98
Constructores
Name Descripcin
Constructor
Sys.CommandEventArgs
Crea un objeto CommandEventArgs basado en los parmetros
proporcionados.
Miembros
Name Descripcin
Sys.CommandEventArgs.commandName
(Propiedad)
Obtiene una cadena que especifica el nombre del comando.
Sys.CommandEventArgs.commandArgument
(Propiedad)
Obtiene un valor que representa el argumento del
comando.
Sys.CommentEventArgs.commandSource
(Propiedad)
Obtiene un valor que representa el comando de origen.
2.7. Sys.Component (Clase)
Proporciona la clase base de las clases Control y Behavior y de cualquier otro objeto cuya duracin deba ser
administrada por la biblioteca de cliente AJAX de ASP.NET.
Espacio de nombres: Sys
Hereda: nada
var a = new aComponent();
Constructores
Name Descripcin
Sys.Component
(Constructor)
Cuando se invalida en una clase derivada, inicializa una instancia de esa clase y
la registra con la aplicacin como objeto descartable.
Miembros
Name Descripcin
Sys.Component.disposing (Evento) Se provoca cuando se llama al mtodo dispose del objeto
Component actual.
Sys.Component.propertyChanged
(Evento)
Se provoca cuando se llama al mtodo raisePropertyChanged del
objeto Component actual.
Sys.Component beginUpdate
(Mtodo)
El mtodo create llama a este mtodo para indicar que se ha
iniciado el proceso de establecimiento de propiedades de una
instancia de componente.
Sys.Component.create (Mtodo) Crea e inicializa un componente.
Sys.Component.dispose (Mtodo) Quita el componente de la aplicacin.
Sys.Component endUpdate (Mtodo) El mtodo create llama a este mtodo para indicar que ha
finalizado el proceso de establecimiento de propiedades de una
instancia de componente.
Sys.Component initialize (Mtodo) Inicializa el componente.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 29 de 98
Sys.Component.raisePropertyChanged
(Mtodo)
Provoca el evento propertyChanged del objeto Component actual
para una propiedad especificada.
Sys.Component updated (Mtodo) El mtodo endUpdate del objeto Component actual llama a este
mtodo.
Sys.Component.events (Propiedad) Obtiene un objeto EventHandlerList que contiene las referencias a
todos los controladores de eventos que estn asignados a los
eventos del componente actual.
Sys.Component id (Propiedad) Obtiene o establece el identificador del objeto Component actual.
Sys.Component isInitialized
(Propiedad)
Obtiene un valor que indica si se inicializa el objeto Component
actual.
Sys.Component isUpdating
(Propiedad)
Obtiene un valor que indica si se actualiza el objeto Component
actual.
Comentarios
La clase Component proporciona la clase base para todos los controles, comportamientos y componentes no visuales
del cliente AJAX de ASP.NET de la pgina. Proporciona tambin el mtodo create esttico, disponible como
Sys.Component.Create o como el mtodo abreviado $create, para poder agregar una instancia de un componente,
control o comportamiento a la aplicacin. Se prefiere el mtodo create a Sys.Application. addComponent porque
establece todas las propiedades necesarias para definir una instancia de componente en la pgina.
La clase Component implementa la interfaz INotifyDisposing. Cualquier objeto de la aplicacin puede suscribirse al
evento disposing de un objeto component y utilizar el evento como una seal para desecharse o realizar otra tarea. La
clase Component implementa tambin la interfaz INotifyPropertyChanged y, por tanto, provoca los eventos
propertyChanged. Estos eventos se pueden administrar internamente, suscribirse a travs de otros componentes o
ambas cosas.
2.8. Sys.CultureInfo (Clase)
Representa una definicin de referencia cultural que se puede aplicar a los objetos que aceptan una configuracin
relacionada con la referencia cultural.
Espacio de nombres: Sys
Hereda: nada
var currentCultureInfoObj = Sys.CultureInfo.CurrentCulture;
var dtfCCObject = currentCultureInfoObj.dateTimeFormat;
var invariantCultureInfoObj = Sys.CultureInfo.InvariantCulture;
var dtfICObject = invariantCultureInfoObj.dateTimeFormat;
Constructores
Name Descripcin
Sys.CultureInfo (Constructor) Inicializa una nueva instancia de la clase Sys.CultureInfo.
Miembros
Name Descripcin
Sys.CultureInfo.CurrentCulture
(Propiedad)
Obtiene un objeto que contiene los valores de globalizacin de la
referencia cultural actual enviados por el servidor.
Sys.CultureInfo.dateTimeFormat
(Propiedad)
Obtiene un objeto que contiene una matriz de valores de cadena que
definen el anlisis y el formato basados en la referencia cultural que
se pueden aplicar a extensiones de tipo Date.
Sys.CultureInfo.InvariantCulture
(Propiedad)
Obtiene un objeto que contiene los valores de globalizacin de la
referencia cultural de todos los idiomas enviados por el servidor.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 30 de 98
Sys.CultureInfo.name (Propiedad) Obtiene el valor de referencia cultural (configuracin regional) que
representa un idioma y regin.
Sys.CultureInfo.numberFormat
(Propiedad)
Obtiene un objeto que contiene una matriz de valores de cadenas de
anlisis y con formato basados en la referencia cultural que se
pueden aplicar a extensiones de tipo Number.
Comentarios
La clase CultureInfo representa una definicin de referencia cultural que se puede aplicar a los objetos que aceptan una
configuracin relacionada con la referencia cultural. La clase cliente CultureInfo es similar a la clase CultureInfo de .NET
Framework.
2.9. Sys.Debug (Clase)
Proporciona funciones de depuracin y traza para el cdigo cliente ECMAScript (JavaScript). Esta clase es esttica y se
invoca directamente sin crear una instancia.
Espacio de nombres: Sys
Hereda: nada
debug.trace(message);
Miembros
Name Descripcin
Sys.Debug (Constructor) Inicializa una nueva instancia de Sys.Debug (Clase).
Sys.Debug assert
(Mtodo)
Comprueba una condicin y, si sta es false, muestra un mensaje y solicita al
usuario que irrumpa en el depurador.
Sys.Debug clearTrace
(Mtodo)
Borra todos los mensajes de traza de trace console.
Sys.Debug fail (Mtodo) Muestra un mensaje en la ventana de salida del depurador e irrumpe en el
depurador.
Sys.Debug trace
(Mtodo)
Anexa una lnea de texto a la consola del depurador y a trace console, si
est disponible.
Sys.Debug traceDump
(Mtodo)
Vuelca un objeto a la consola del depurador y al elemento trace console, si
est disponible.
Comentarios
Mediante llamadas a los mtodos de la clase Debug, puede mostrar los objetos en formato legible en la consola de
depuracin, mostrar mensajes de traza, utilizar aserciones e interrumpir el depurador.
El mtodo assert se debe utilizar para detectar errores del programador. Para responder a los errores del usuario y a las
condiciones de error en tiempo de ejecucin como errores de red o errores de permisos, provoque una excepcin.
El comportamiento, los requisitos y el resultado de depuracin de los mensajes de traza varan con los distintos
exploradores.
Ejemplo
En el ejemplo siguiente se crea una pgina web que muestra los mtodos de la clase Debug.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
function btnAssert_onclick() {
var n;
// Insert code intended to set n to a positive integer.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 31 de 98
if (false) n = 3;
// Assert if n is not greater than 0.
Sys.Debug.assert(n > 0, "n must be set to a positive integer.");
}

function btnFail_onclick() {
var n;
// Insert code intended to set n to a numeric value.
if (false) n = 3;
// Fail if n is not numeric.
if (isNaN(n)) Sys.Debug.fail("The value of n must be a number.");
}

function btnTrace_onclick() {
v = form1.text1.value;
Sys.Debug.trace("Name set to " + "\"" + v + "\".");
alert("Hello " + v + ".");
}

function btnDump_onclick() {
Sys.Debug.traceDump(form1.text1, "Name textbox");
alert("Hello " + form1.text1.value + ".");
}

function btnClear_onclick() {
Sys.Debug.clearTrace()
alert("Trace console cleared.");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h2>Sys.Debug Methods Test Page</h2>
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<p><b>Use these buttons to demonstrate the assert() and fail()
methods:</b><br />
<input id="btnAssert" type="button" value="Assert"
style="width: 100px"
onclick="return btnAssert_onclick()" /> &nbsp
<input id="btnFail" type="button" value="Fail"
style="width: 100px" onclick="return btnFail_onclick()" />
</p><hr />
<b>Use the textbox and buttons below to demonstrate tracing.</b>
<br />
<p>Enter your name here:<br />
<input id="text1" maxlength="50" type="text" />
<br />
<br />
<input id="btnTrace" type="button" value="Trace"
style="width: 100px" onclick="return btnTrace_onclick()" /><br />
<input id="btnDump" type="button" value="TraceDump"
style="width: 100px" onclick="return btnDump_onclick()" /><br />
<input id="btnClear" type="button" value="ClearTrace"
style="width: 100px" onclick="return btnClear_onclick()" /><br />
<br /></p>
View output in the TraceConsole textarea below.
<br />
<textarea id='TraceConsole' rows="10" cols="50" title="TraceConsole">
</textarea>
</form>
</body>
</html>
2.10. Sys.EventArgs (Clase)
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 32 de 98
Proporciona una clase base para las clases que los orgenes de eventos utilizan para pasar informacin sobre los
argumentos del evento.
var anEventArgs = new Sys.EventArgs();
Constructores
Name Descripcin
Sys.EventArgs (Constructor) Inicializa una nueva instancia de la clase EventArgs.
Miembros
Name Descripcin
Sys.EventArgs.Empty (Objeto) Especifica una instancia de EventArgs vaca.
Comentarios
La clase EventArgs se utiliza como clase base para otras clases de argumentos de eventos, como la clase CancelEvent
Args y la clase PageLoadEventArgs.
2.11. Sys.EventHandlerList (Clase)
Crea un diccionario de eventos de cliente para un componente, con nombres de evento como claves y los controladores
asociados como valores.
Espacio de nombres: Sys
Hereda: nada
var e = new Sys.EventHandlerList();
Constructores
Name Descripcin
Sys.EventHandlerList (Constructor) Inicializa una nueva instancia de la clase EventHandlerList.
Miembros
Name Descripcin
Sys.EventHandlerList.addHandler
(Mtodo)
Asocia un controlador a un evento especificado en una instancia
de EventHandlerList y agrega el evento especificado a la lista
si an no figura en ella.
Sys.EventHandlerList getHandler
(Mtodo)
Devuelve un nico mtodo al que se puede invocar para llamar
secuencialmente a todos los controladores del evento
especificado.
Sys.EventHandlerList.removeHandler
(Mtodo)
Quita un controlador de eventos del evento especificado en una
instancia de EventHandlerList.
Comentarios
Utilice la clase EventHandlerList para controlar eventos de cliente en componentes AJAX de ASP.NET personalizados. La
clase EventHandlerList proporciona una ubicacin de referencia central para los eventos y sus controladores en un
bloque de script, componente o archivo de recursos de script.
Nota
Esta clase slo se utiliza al desarrollar componentes cliente. No se utiliza para el control de eventos fuera del
mbito de desarrollo de componentes ni para el enlace de eventos de DOM.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 33 de 98
Para provocar un evento, llame primero al mtodo getHandler con el parmetro id establecido en el identificador del
evento que se va a provocar. A continuacin, llame al mtodo devuelto por getHandler. De esta forma, se llamar a
todos los controladores del evento en orden.
En una clase derivada de Sys.Component, puede tener acceso a una instancia en tiempo de ejecucin de EventHandler
List mediante la propiedad events de la clase base Sys.Component.
Ejemplo
En el ejemplo siguiente se muestra cmo utilizar la clase EventHandlerList en un control personalizado AJAX de ASP
.NET.
// Register namespace.
Type.registerNamespace("Demo");
Demo.HoverButton = function(element) {
Demo.HoverButton.initializeBase(this, [element]);
// Create delegates in the Constructor.
this._clickDelegate = null;
}
Demo.HoverButton.prototype = {
// Bind and unbind to click event.
add_click: function(handler) {
this.get_events().addHandler('click', handler);
},
remove_click: function(handler) {
this.get_events().removeHandler('click', handler);
},
initialize: function() {
var element = this.get_element();
// Bind handler to delegate.
if (this._clickDelegate === null) {
this._clickDelegate = Function.createDelegate(this,
this._clickHandler);
}
Sys.UI.DomEvent.addHandler(element, 'click', this._clickDelegate);
Demo.HoverButton.callBaseMethod(this, 'initialize');
},
_clickHandler: function(event) {
var h = this.get_events().getHandler('click');
if (h) h(this, Sys.EventArgs.Empty);
},
// Release resources before control is disposed.
dispose: function() {
var element = this.get_element();
if (this._clickDelegate) {
Sys.UI.DomEvent.removeHandler(element, 'click',
this._clickDelegate);
delete this._clickDelegate;
}
Demo.HoverButton.callBaseMethod(this, 'dispose');
}
}

// Register the class.
Demo.HoverButton.registerClass('Demo.HoverButton', Sys.UI.Control);
// Notify the ScriptManager that this is the end of the script.
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>EventHandlerList Example</title>
</head>
<body>
<form id="form1" runat="server">
<div id="ResultDisplay"></div>
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 34 de 98
<asp:ScriptManager runat="server" ID="ScriptManager01">
<scripts>
<asp:ScriptReference Path="HoverButton.js" />
</scripts>
</asp:ScriptManager>
<script type="text/javascript">
var app = Sys.Application;
// Add the handler function to the pageLoad event.
app.add_load(applicationLoadHandler);
function applicationLoadHandler(sender, args) {
$create(
Demo.HoverButton,
{element: {style: {borderWidth: "2px"}}},
// Bind the start function to the click event.
{click: start},
null,
$get('Button1')
);
}
function start(sender, args) {
alert("The start function handled the HoverButton click
event.");
}
</script>
<button type="button" id="Button1" value="HoverButton">
HoverButton
</button>
</form>
</body>
</html>
2.12. Sys.HistoryEventArgs (Clase)
La clase Sys.Application utiliza esta clase para contener los argumentos de evento para el evento navigate.
Espacio de nombres: espacio de nombres Sys
Hereda: la clase Sys.EventArgs
var a = new Sys.HistoryEventArgs(componentVar);
Constructores
Miembro Descripcin
Constructor Sys.HistoryEventArgs Inicializa una nueva instancia de la clase Sys.HistoryEventArgs.
Members
Miembro Descripcin
Mtodo Sys.HistoryEventArgs.get_state Recupera una coleccin de pares de nombre y valor que
representan el estado de una pgina web.
Comentarios
La clase HistoryEventArgs proporciona datos para el evento Sys.Application.navigate, que se provoca cuando el usuario
hace clic en los botones Atrs oAdelante del explorador.
2.13. Sys.IContainer (Interfaz)
Proporciona una interfaz comn para todos los componentes que pueden contener otros componentes.
Espacio de nombres: Sys
myNamespace.myClassName.registerClass('myNamespace.myClassName', null,
Sys.IContainer);
Miembros
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 35 de 98
Name Descripcin
Sys.IContainer.addComponent (Mtodo) Agrega un objeto Component al contenedor actual.
Sys.IContainer.findComponent
(Mtodo)
Devuelve la instancia especificada de Component.
Sys.IContainer.getComponents
(Mtodo)
Devuelve una matriz de todos los objetos del contenedor actual
que heredan de Component.
Sys.IContainer.removeComponent
(Mtodo)
Quita un objeto Component del contenedor actual.
Comentarios
Implemente esta interfaz en componentes que pueden contener otros componentes para que los componentes
secundarios estn disponibles pblicamente.
2.14. Sys.IDisposable (Interfaz)
Proporciona una interfaz comn para las tareas definidas por la aplicacin de cierre, liberacin o restablecimiento de
recursos almacenados por instancias de una clase Microsoft Ajax Library registrada.
Espacio de nombres: Sys
Hereda: nada
myNamespace.myClassName.registerClass('myNamespace.myClassName', null,
Sys.IDisposable);
Members
Sys.IDisposable dispose (Mtodo)
Libera los recursos mantenidos por un objeto o prepara un objeto para su reutilizacin.
Comentarios
Implemente la interfaz IDisposable para proporcionar una interfaz comn para el cierre o liberacin de los recursos
mantenidos por las instancias de su clase de Microsoft Ajax Library registrada.
La interfaz se registra al registrar la clase llamando al mtodo Type.registerClass. Debe especificar IDisposable en el
parmetro interfaceTypes al llamar aType.registerClass.
Nota
La clase base Sys.Component implementa la interfaz IDisposable. Si crea una clase de componente derivada de
la clase base Sys.Component, su clase hereda automticamente la implementacin de la interfaz IDisposable.
2.15. Sys.INotifyDisposing (Interfaz)
Indica que el tipo que implementa la interfaz proporciona notificaciones de disposing.
Espacio de nombres: Sys
Hereda: nada
myNamespace.myClassName.registerClass('myNamespace.myClassName', null,
Sys.INotifyDisposing, Sys.IDisposable);
Miembros
Name Descripcin
Sys.INotifyDisposing.disposing (Evento) Se produce cuando se liberan recursos de un objeto.
Comentarios
Implemente esta interfaz si la clase debe notificar a otros objetos cundo est liberando recursos. La clase de
componente base ya implementa esta interfaz. Por lo tanto, esta interfaz ya est disponible normalmente.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 36 de 98
2.16. Sys.INotifyPropertyChange (Interfaz)
Define el evento propertyChanged.
Espacio de nombres: Sys
Hereda: nada
myNamespace.myClassName.registerClass('myNamespace.myClassName', null,
Sys.INotifyPropertyChange);
Miembros
Name Descripcin
Sys.INotifyPropertyChange.propertyChanged
(Evento)
Se provoca cuando una propiedad de un componente
se establece en un nuevo valor.
Comentarios
La interfaz INotifyPropertyChange es implementada por la clase Sys.Component. Por consiguiente, de forma
predeterminada, todos los comportamientos, controles y componentes AJAX de ASP.NET proporcionan notificaciones
de cambio de propiedad.
2.17. Sys.NotifyCollectionChangedAction (Enumeracin)
Describe cmo ha cambiado una coleccin.
Espacio de nombres: Sys
Hereda: nada
var a = Sys.NotifyCollectionChangedAction.add;
var b = Sys.NotifyCollectionChangedAction.remove;
var c = Sys.NotifyCollectionChangedAction.reset;
Miembros
Nombre del miembro Descripcin
add El entero 0, indica que la accin cambiada en la coleccin es add.
remove El entero 1, indica que la accin cambiada en la coleccin es remove.
reset El entero 2, indica que la accin cambiada en la coleccin es reset.
2.18. Sys.NotifyCollectionChangedEventArgs (Clase)
Describe cmo cambi la coleccin.
Espacio de nombres: Sys
Hereda: Sys.EventArgs
var args = new Sys.NotifyCollectionChangedEventArgs(changes);
Constructores
Name Descripcin
Sys.NotifyCollectionChangedEventArgs
(Constructor)
Inicializa una nueva instancia de la clase
NotifyCollectionChangedEventArgs.
Miembros
Name Descripcin
Sys.NotifyCollectionChangedEventArgs.changes
(Propiedad)
Obtiene una matriz de cambios que se realizaron
en la coleccin desde el ltimo evento.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 37 de 98
2.19. Sys.Observer (Clase)
Agrega la funcionalidad de actualizacin y administracin a objetos de destino como matrices, elementos DOM y
objetos.
Espacio de nombres: Sys
Hereda: nada
Sys.Observer.addPropertyChanged(targetObject, myHandler);
Miembros
Name Descripcin
Sys.Observer.add (Mtodo) Agrega un elemento a la coleccin de una manera
perceptible.
Sys.Observer.addCollectionChanged
(Mtodo)
Agrega un controlador de eventos al destino.
Sys.Observer.addEventHandler (Mtodo) Agrega un controlador de eventos perceptible al destino.
Sys.Observer.addPropertyChanged (Mtodo) Agrega un controlador de eventos propertyChanged al
destino.
Sys.Observer.addRange (Mtodo) Agrega elementos a la coleccin de una manera
perceptible.
Sys.Observer.beginUpdate (Mtodo) Comienza el proceso de actualizar el objeto de destino.
Sys.Observer.clear (Mtodo) Borra la matriz de sus elementos de una manera
perceptible.
Sys.Observer.endUpdate (Mtodo) Finaliza el proceso de actualizar el objeto de destino.
Sys.Observer.insert (Mtodo) Inserta un elemento en el ndice especificado de una
manera perceptible.
Sys.Observer.isUpdating (Mtodo) Indica que el destino se est actualizando.
Sys.Observer.makeObservable (Mtodo) Hace un objeto perceptible directamente agregndole
mtodos perceptibles.
Sys.Observer.raiseCollectionChanged
(Mtodo)
Provoca el evento collectionChanged.
Sys.Observer.raiseEvent (Mtodo) Genera un evento perceptible en el destino.
Sys.Observer.raisePropertyChanged
(Mtodo)
Genera un evento de notificacin propertyChanged.
Sys.Observer.remove (Mtodo) Quita la primera aparicin de un elemento de la matriz de
una manera perceptible.
Sys.Observer.removeAt (Mtodo) Quita el elemento en el ndice especificado de la matriz de
una manera perceptible.
Sys.Observer.removeCollectionChanged
(Mtodo)
Quita un controlador de eventos collectionChanged del
destino.
Sys.Observer.removePropertyChanged
(Mtodo)
Quita un controlador de eventos propertyChanged del
destino.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 38 de 98
Sys.Observer.removeEventHandler (Mtodo) Quita un controlador de eventos perceptible del destino.
Sys.Observer.setValue (Mtodo) Establece una propiedad o campo en el destino de una
manera perceptible.
Sys.Observer.isUpdating (Propiedad) Obtiene un valor Boolean que indica si el destino se est
actualizando.
Comentarios
La clase Sys.Observer est basada en Observer pattern. La clase Sys.Observer mantiene una lista de celdas dependientes
(observadores) interesadas en un objeto independiente (el asunto). Todos los mtodos incluidos en la clase
Sys.Observer son estticos.
Para ser utilizado con la clase Sys.Observer, un objeto debe ser un objeto, matriz o elemento DOM.
Ejemplo
En el siguiente ejemplo se muestra cmo declarar un objeto Observer y enlazarlo a un objeto DataView.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Linked DataViews</title>
<link href="styles/list.css" rel="stylesheet" type="text/css" />
<script type="text/javascript"
src="../MicrosoftAjax/MicrosoftAjax.debug.js"></script>
<script type="text/javascript"
src="../MicrosoftAjax/MicrosoftAjaxTemplates.debug.js"></script>
<script type="text/javascript">
var imageData = [
{ Name: "Crashing water", Description: "A splash of waves captured." },
{ Name: "Dazed", Description: "Mid-day heat?" },
{ Name: "Close Zoom on Giraffe", Description: "Closeup of a Giraffe at
Wild Animal Park." },
{ Name: "Pier", Description: "A pier in Morro Bay." },
{ Name: "Seagull reflections", Description: "Seagulls at peace." },
{ Name: "Spain", Description: "In Balboa Park, in downtown San Diego."
},
{ Name: "Sumatran Tiger", Description: "Restful." }
];
// Make the data collection observable.
Sys.Observer.makeObservable(imageData);
function moveUp(sender) {
var nameList = $find("names");
// Find the DataView item that the button was in.
var item = nameList.findContext(sender);
var index = item.index;
var dataItem = item.dataItem;
var newIndex = index > 0 ? index - 1 : imageData.length;
// Move data item up one, which invokes an observer.
imageData.beginUpdate();
imageData.remove(dataItem);
imageData.insert(newIndex, dataItem);
imageData.endUpdate();
}
</script>
</head>
<body xmlns:dataview="javascript:Sys.UI.DataView" xmlns:sys="javascript:Sys">
<div class="title">Names:</div>
<ul class="sys-template list" id="names"
sys:attach="dataview"
dataview:data="{{ imageData }}"
dataview:initialselectedindex="0"
dataview:selecteditemclass="selecteditem"
dataview:sys-key="nameList"
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 39 de 98
>
<li sys:command="select">
<button onclick = "moveUp(this)"></button>
<span>{{ Name }}</span>
</li>
</ul>
<div class="title">Descriptions:</div>
<ul class="sys-template list"
sys:attach="dataview"
dataview:data="{{ imageData }}"
dataview:selecteditemclass="selecteditem"
dataview:selectedindex="{binding selectedIndex, source=nameList}"
>
<li sys:command="select">{{ Description }}</li>
</ul>
</body>
</html>
2.20. Sys.PropertyChangedEventArgs (Clase)
Esta clase la usa el evento propertyChanged para indicar la propiedad que ha cambiado.
Espacio de nombres: Sys
Hereda: Sys.EventArgs
var e = new Sys.PropertyChangedEventArgs();
Constructores
Name Descripcin
Sys.PropertyChangedEventArgs
(Constructor)
Inicializa una nueva instancia de la clase Sys.PropertyChanged
EventArgs.
Miembros
Name Descripcin
Sys.PropertyChangedEventArgs.propertyName
(Propiedad)
Obtiene el nombre de la propiedad modificada.
2.21. Sys.Res (Clase)
Proporciona mensajes de excepcin estticos y neutrales en cuanto a la referencia cultural que se utilizan en el marco de
trabajo de Microsoft Ajax Library.
Nota
Este tipo admite la infraestructura de .NET Framework y no est prevista su utilizacin directa desde el cdigo.
Espacio de nombres: Sys
Hereda: nada
var resVar = Sys.Res.actualValue;
Comentarios
Propiedad Valor en forma de cadena
actualValue "Valor actual {0}".
appLoadTimedout "La aplicacin no se pudo cargar dentro del perodo del tiempo de
espera especificado".
argument "El valor no est dentro del intervalo esperado".
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 40 de 98
argumentNull "El valor no puede ser nulo.
argumentOutOfRange "El argumento especificado est fuera del intervalo de valores
vlidos.
argumentType "El objeto no se puede convertir en el tipo requerido.
argumentTypeWithTypes "El objeto de tipo '{0}' no puede convertirse en el tipo '{1}'.
argumentUndefined "El valor no puede estar sin definir.
assertFailed "Error de asercin: {0}
assertFailedCaller "Error de asercin: {0}\r\nen {1}
badBaseUrl1 "La direccin URL no contiene ://.
badBaseUrl2 "La direccin URL base no contiene otra /.
badBaseUrl3 "No se puede encontrar la ltima / en la direccin URL base.
breakIntoDebugger "{0}\r\n\r\nDesea interrumpir el depurador?
cannotAbortBeforeStart "No se puede anular si no se ha iniciado el elemento de ejecucin.
cannotCallBeforeResponse "No se puede llamar a {0} cuando responseAvailable es false.
cannotCallOnceStarted "No se puede llamar a {0} una vez iniciado.
cannotCallOutsideHandler "No se puede llamar a {0} fuera de un controlador de eventos
completado.
cannotDeserializeEmptyString "No se puede deserializar una cadena vaca.
cannotSerializeNonFiniteNumbers "No se pueden serializar nmeros no finitos.
controlCantSetId "La propiedad id no se puede definir en un control.
enumInvalidValue "'{0}'no es un valor vlido para la enumeracin {1}.
eventHandlerInvalid "No se agreg el controlador mediante el mtodo
Sys.UI.DomEvent.addHandler.
format "Uno de los elementos identificados tiene un formato no vlido.
formatBadDate "La cadena no se reconoce como una fecha vlida.
formatBadFormatSpecifier "Especificador de formato no vlido
formatInvalidString "La cadena de entrada no tiene el formato correcto.
invalidExecutorType "No se pudo crear un Sys.Net.WebRequestExecutor vlido desde:
{0}.
invalidHttpVerb "httpVerb no se puede establecer en una cadena vaca o nula.
invalidOperation "Operacin no vlida debido al estado actual del objeto".
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 41 de 98
invalidTimeout "El valor debe ser mayor o igual a cero".
invokeCalledTwice "No se puede llamar a invoke ms de una vez".
notImplemented "El mtodo o la operacin no estn implementados".
nullWebRequest "No se puede llamar a executeRequest con un webRequest nulo".
2.22. Sys.StringBuilder (Clase)
Proporciona un mecanismo para concatenar cadenas.
Espacio de nombres: Sys
Hereda: nada
var stringBuilderVar = StringBuilder(string);
Constructores
Sys.StringBuilder (Constructor)
Crea una nueva instancia de StringBuilder y, opcionalmente, acepta el texto inicial que se va a concatenar.
Miembros
Sys.StringBuilder append (Mtodo)
Anexa una cadena al final de la instancia de StringBuilder.
Sys.StringBuilder appendLine (Mtodo)
Anexa una nueva cadena con un terminador de lnea al final de la instancia de StringBuilder.
Sys.StringBuilder clear (Mtodo)
Borra el contenido de la instancia de StringBuilder.
Sys.StringBuilder isEmpty (Mtodo)
Determina si la instancia de StringBuilder tiene contenido.
Sys.StringBuilder toString (Mtodo)
Crea una cadena a partir del contenido de una instancia de StringBuilder.
Comentarios
La clase StringBuilder representa una cadena de caracteres modificable y proporciona un mecanismo para concatenar
una secuencia de cadenas.
Ejemplo
En el ejemplo siguiente se muestra cmo crear una nueva instancia de StringBuilder y llamar al mtodo append para
agregar una lnea de texto. El cdigo llama a continuacin al mtodo appendLine para agregar una cadena con un
terminador de lnea al final de la misma. Por ltimo, el cdigo llama al mtodo toString, pasando un carcter"|" como
delimitador que se inserta entre los elementos de la cadena devuelta por StringBuilder.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Samples</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<script type="text/javascript">
function buildAString(title){
var headTagStart = "<head>";
var headTagEnd = "</head>";
var titleTagStart = "<title>";
var titleTagEnd = "</title>";
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 42 de 98

var sb = new Sys.StringBuilder(this._headTagStart);
sb.append(titleTagEnd);
sb.append(title);
sb.append(titleTagEnd);
sb.append(headTagEnd);
// Displays: "The result: <head><title>A Title</title></head>"
alert("The result" + sb.toString());
}
var title = "A Title";
buildAString(title);
</script>
</form>
</body>
</html>
2.23. Tipos de excepcin Sys
Crea un objeto Error que representa excepciones producidas por el marco de trabajo de Microsoft Ajax Library. Estas
excepciones se crean dinmicamente utilizando las funciones de extensin de tipo Error y no se puede crear instancias
de ellas ni invocarse.
Espacio de nombres: Sys
Hereda: nada
Excepciones
Name Descripcin
Sys.ArgumentException Se produce cuando se invoca una funcin o mtodo y al menos uno
de los argumentos pasados no cumple la especificacin de
parmetros de la funcin o mtodo llamado.
Sys.ArgumentNullException Se produce cuando un argumento tiene un valor null no vlido.
Sys.ArgumentOutOfRangeException Se produce cuando el valor de un argumento est fuera del intervalo
permitido.
Sys.ArgumentTypeException Se produce cuando un parmetro no es un tipo permitido.
Sys.ArgumentUndefinedException Se produce cuando un argumento de un parmetro de mtodo
necesario no est definido.
Sys.InvalidOperationException Se produce cuando hay un error en una llamada a un mtodo por
causas distintas a argumentos no vlidos.
Sys.NotImplementedException Se produce cuando un objeto no admite un mtodo solicitado.
Sys.ParameterCountException Se produce cuando se pasa un nmero no vlido de argumentos a
una funcin.
Sys.ScriptLoadFailedException Producida por el marco de trabajo de Microsoft Ajax Library
cuando un script no se carga correctamente. Los programadores no
deben producir esta excepcin.
3. Sys.Net (Espacio de nombres)
El espacio de nombres Sys.Net contiene clases que administran la comunicacin entre las aplicaciones cliente de
ASP.NET compatibles con AJAX y los servicios Web en el servidor. El espacio de nombres Sys.Net forma parte de
Microsoft Ajax Library.
Tipos
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 43 de 98
Nombre Descripcin
Clases de proxy generadas Permite que la aplicacin llame de forma asincrnica a los
servicios Web mediante ECMAScript (JavaScript).
Sys.Net.NetworkRequestEventArgs
(Clase)
Contiene informacin sobre una solicitud web que est lista para
ser enviada a la instancia de WebRequestExecutor actual.
Sys.Net.WebRequest (Clase) Proporciona la API de script para realizar una solicitud web.
Sys.Net.WebRequestExecutor (Clase) Proporciona la clase base abstracta de la que se derivan los
elementos de ejecucin de red.
Sys.Net.WebRequestManager (Clase) Administra el flujo de solicitudes web entre el objeto
WebRequest y la instancia del elemento de ejecucin que realiza
las solicitudes de red.
Sys.Net.WebServiceError (Clase) Representa el tipo de objeto devuelto al cliente cuando un servicio
Web enva un error.
Sys.Net.WebServiceProxy (Clase) Permite llamar a un mtodo de un servicio Web especificado de
forma asincrnica.
Sys.Net.XMLHttpExecutor (Clase) Realiza solicitudes de red asincrnicas mediante la compatibilidad
XMLHTTP del explorador.
3.1. Clases de proxy generadas
Permite que la aplicacin llame de forma asincrnica a los servicios Web mediante ECMAScript (JavaScript).
Espacio de nombres: Sys.Net
Hereda: nada
Constructores
Name Descripcin
Constructor de clases de proxy generadas Crea una nueva instancia de la clase de proxy generada.
Miembros
Name Descripcin
Mtodos de servicios Web de clases de proxy
generadas
Invoque los mtodos de servicio Web correspondientes.
Propiedad defaultFailedCallback de clases de
proxy generadas
Obtiene o establece la funcin de devolucin de llamada
errnea predeterminada para la clase de proxy generada y
sus instancias.
Propiedad defaultSucceededCallback de
clases de proxy generadas
Obtiene o establece la funcin de devolucin de llamada
correcta predeterminada para la clase de proxy generada y
sus instancias.
Generated Proxy Classes defaultUserContext
(Propiedad)
Obtiene o establece el contexto de usuario predeterminado
para la clase de proxy generada y sus instancias.
Propiedad ruta de acceso de clases de proxy
generadas
Obtiene y establece la direccin URL del servicio Web.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 44 de 98
Generated Proxy Classes timeout
(Propiedad)
Obtiene o establece el intervalo de tiempo de espera para la
clase de proxy generada y sus instancias.
Funcin de devolucin de llamada fallida de
clases de proxy generadas
Procesa la informacin de error cuando una solicitud del
mtodo de servicio Web produce un error.
Funcin de devolucin de llamada
satisfactoria de clases de proxy generadas
Procesa los datos devueltos cuando la solicitud del mtodo
de servicio Web se realiza correctamente.
Comentarios
Para invocar un mtodo de un servicio Web, se llama al mtodo correspondiente de la clase de proxy del servicio Web
generada. La clase de proxy generada ejecuta una solicitud web en el mtodo de servicio Web.
Nota
Para que las aplicaciones de ASP.NET compatibles con AJAX llamen a servicios Web desde un script, la
aplicacin debe estar configurada para registrar el controlador HTTP de ASP.NET necesario.
El servicio Web al que se llama debe ser un archivo .asmx y debe estar calificado con el atributo ScriptServiceAttribute.
Los mtodos individuales que se van a llamar desde el script se deben calificar con el atributo WebMethodAttribute. Los
mtodos sin este atributo no se exponen en la clase de proxy.
La clase de proxy se genera automticamente cuando la pgina web ASP.NET se representa y se deriva de la clase
Sys.Net.WebServiceProxy. La propiedad path de la clase generada hace referencia a la direccin URL del servicio Web.
En la aplicacin, puede llamar a los miembros de la clase de proxy generados. Tambin puede crear instancias de la
clase de proxy generada. Puede especificar una funcin de devolucin de llamada correcta, una funcin de devolucin
de llamada errnea, y, opcionalmente, el valor de tiempo de espera y el contexto del usuario como propiedades
predeterminadas de cada instancia. A continuacin, puede utilizar estas instancias de la clase de proxy para llamar a los
mtodos de servicio Web.
Ejemplo
En el ejemplo de cdigo siguiente se muestra cmo usar una clase de proxy generada de servicio Web. En el ejemplo se
muestra una pgina web, un script de cliente y un servicio Web llamados por la pgina a travs del script de cliente.
Pgina Web
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Using Generated Web Service Proxy Class</title>
<style type="text/css">
body { font: 11pt Trebuchet MS;
font-color: #000000;
padding-top: 72px;
text-align: center }
.text { font: 10pt Trebuchet MS; text-align: center }
</style>
</head>
<body>
<h2>Using Generated Web Service Proxy Class</h2>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="scriptManager">
<Services>
<asp:ServiceReference Path="UsingProxyClass.asmx" />
</Services>
<Scripts>
<asp:ScriptReference Path="UsingProxyClass.js" />
</Scripts>
</asp:ScriptManager>
</form>
<center>
<table style="font-size:12px;" >
<tr align="left">
<td class="text">Get Server Object:</td>
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 45 de 98
<td>
<button id="Button3"
onclick="GetDefaultColor()">Get Default Color</button>
</td>
</tr>
<tr align="left">
<td class="text">Pass Server Object:</td>
<td>
<button id="Button4"
onclick="SetColor()">Set Color</button>
</td>
</tr>
</table>
</center>
<hr />
<!-- Display current color object. -->
<span id="ResultId"></span>
</body>
</html>

Script de Cliente
// The Web service default color.
var defaultRgb;
// The proxy class instance.
var proxyInstance;
// The page feedback display element.
var displayResult;
// This function intializes the global variables and
// assigns default values to the generated proxy.
function pageLoad()
{
// Get page feedback display element.
displayResult =
document.getElementById("ResultId");
// Assign default values to the generated proxy.
Samples.AspNet.UsingProxyClass.set_timeout(200);
Samples.AspNet.UsingProxyClass.set_defaultUserContext("Default context");

Samples.AspNet.UsingProxyClass.set_defaultSucceededCallback(SucceededCallback)
;
Samples.AspNet.UsingProxyClass.set_defaultFailedCallback(FailedCallback);
}
// This function shows how to get a server object.
function GetDefaultColor()
{
// Gets the default color obiect.
Samples.AspNet.UsingProxyClass.GetDefaultColor();
}
// This function shows how to instantiate
// the proxy class to assign its default values.
function SetColor()
{
// Instantiate a color object.
var color = new Samples.AspNet.ColorObject();
// Define a color array (blue).
var colorArray = new Array("00", "00", "FF");
// Assign the new values to the server color object.
color.message = "The new color is Blue";
color.rgb = colorArray;
// Assign default values for the generated proxy using
// a proxy instance.
proxyInstance = new Samples.AspNet.UsingProxyClass();
proxyInstance.set_timeout(1000);
proxyInstance.set_defaultUserContext("New context");
proxyInstance.set_defaultSucceededCallback(SucceededCallback);
proxyInstance.set_defaultFailedCallback(FailedCallback);
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 46 de 98

// Set the default color object.
proxyInstance.SetColor(color);
}
// Callback function invoked when the call to
// the Web service methods succeeds.
function SucceededCallback(result, userContext, methodName)
{
var message;
switch(methodName)
{
case ("GetDefaultColor"):
case ("SetColor"):
{
// Get the server default color.
message = result.message;
defaultRgb = result.rgb;
// Transform the rgb array into a string.
var serverColor = defaultRgb[0]+ defaultRgb[1] + defaultRgb[2];
// Display the result.
displayResult.style.color = "yellow";
displayResult.style.fontWeight = "bold";
displayResult.style.backgroundColor = "#" + serverColor;
DisplayMessage(message);
break;
}
default:
{
DisplayMessage("Method unknown");
}
}
}
// Callback function invoked when the call to
// the Web service methods fails.
function FailedCallback(error, userContext, methodName)
{
if(error !== null)
{
displayResult.innerHTML = "An error occurred: " +
error.get_message();
}
}
function DisplayMessage(message)
{
if (document.all)
displayResult.innerText = message;
else
// Firefox
displayResult.textContent = message;
}
if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

Servicio Web
<%@ WebService Language="C#" Class="Samples.AspNet.UsingProxyClass" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Web.Script.Serialization;
using System.Collections.Generic;
namespace Samples.AspNet
{
// Define the color type to exchange with the client.
public class ColorObject
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 47 de 98
{
public string message;
public string[] rgb;
public ColorObject()
{
this.message = "The default color is Red";
this.rgb = new string[] { "FF", "00", "00" };
}
}
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class UsingProxyClass :
System.Web.Services.WebService
{
// Note, because the ColorObject is the returned type
// it does not require that you apply
// the attribute [GenerateScriptType(typeof(ColorObject))]
// to the service class to allow client script access.
[WebMethod]
public ColorObject GetDefaultColor()
{
// Instantiate the default color object.
ColorObject co = new ColorObject();
return co;
}
[WebMethod]
public ColorObject SetColor(ColorObject color)
{
// Instantiate the color object.
ColorObject co = new ColorObject();
// Assign the passed values.
co.message = color.message;
co.rgb = color.rgb;
return co;
}
}
}
3.2. Sys.Net.NetworkRequestEventArgs (Clase)
Contiene informacin sobre una solicitud web lista para ser enviada a la instancia de Sys.Net.WebRequestExecutor
actual.
Constructores
Name Descripcin
Sys.Net.NetworkRequestEventArgs
NetWorkRequestEventArgs (Constructor)
Inicializa una nueva instancia de la clase
Sys.Net.NetworkRequestEventArgs.
Miembros
Name Descripcin
Sys.Net.NetworkRequestEventArgs
webRequest (Propiedad)
Obtiene la solicitud web que se debe enrutar a la instancia
actual de Sys.Net.WebRequestExecutor.
Comentarios
Esta clase representa el tipo del segundo parmetro de la funcin de devolucin de llamada agregado por el mtodo
add_invokingRequest. Se llama a la funcin de devolucin de llamada antes de que la solicitud web se enrute a la
instancia actual de la clase WebRequestExecutor.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 48 de 98
3.3. Sys.Net.WebRequest (Clase)
Proporciona la funcionalidad de script de cliente para realizar una solicitud web.
Espacio de nombres: Sys.Net
Hereda: nada
var wRequest = new Sys.Net.WebRequest();
Constructores
Name Descripcin
Sys.Net.WebRequest webRequest (Constructor) Inicializa una nueva instancia de la clase WebRequest.
Miembros
Name Descripcin
Sys.Net.WebRequest add_completed
(Mtodo)
Registra un controlador de eventos al que se asocia la
instancia de solicitud web.
Sys.Net.WebRequest completed (Mtodo) Provoca el evento completado para la instancia de
Sys.Net.WebRequest asociada.
Sys.Net.WebRequest.getResolvedUrl
(Mtodo)
Obtiene la direccin URL resuelta de la instancia de solicitud
web.
Sys.Net.WebRequest invoke (Mtodo) Emite una llamada de red para la instancia de solicitud web.
Sys.Net.WebRequest remove_completed
(Mtodo)
Quita el controlador de eventos asociado a la instancia de
solicitud web.
Sys.Net.WebRequest body (Propiedad) Obtiene o establece el cuerpo HTTP de la solicitud web.
Sys.Net.WebRequest executor (Propiedad) Obtiene o establece el elemento de ejecucin de la instancia
de solicitud web asociada.
Sys.Net.WebRequest headers (Propiedad) Obtiene los encabezados HTTP de la solicitud web.
Sys.Net.WebRequest httpVerb (Propiedad) Obtiene o establece el verbo HTTP de la solicitud web
utilizado para emitir la solicitud web.
Sys.Net.WebRequest timeout (Propiedad) Obtiene o establece el valor de tiempo de espera de la
instancia de solicitud web.
Sys.Net.WebRequest url (Propiedad) Obtiene o establece la direccin URL de la instancia de
solicitud web.
Sys.Net.WebRequest userContext
(Propiedad)
Obtiene o establece el contexto del usuario asociado a la
instancia de solicitud web.
Comentarios
La clase WebRequest la utilizan las clases de nivel de comunicacin asincrnica para realizar una solicitud
web. Normalmente, este tipo no se utiliza directamente en las aplicaciones. En lugar de ello, se llama a los mtodos de
servicio Web o a los mtodos de pgina esttica desde el explorador mediante mtodos de proxy.
Sin embargo, puede crear y utilizar una instancia de WebRequest en los casos siguientes:
Cuando desee realizar solicitudes de red que no sean llamadas simples a mtodos de servicio Web.
Cuando desee establecer directamente propiedades de solicitud HTTP.
Cuando utilice un elemento de ejecucin personalizado basado en la clase Sys.Net.WebRequestExecutor.
Ejemplo
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 49 de 98
En el siguiente ejemplo se muestra cmo crear una instancia de la clase WebRequest para realizar una solicitud web
GET. En el ejemplo se muestra una pgina web y el script de cliente utilizado para interactuar con la clase WebRequest.
Pgina Web
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title> Using WebRequest </title>
<style type="text/css">
body { font: 11pt Trebuchet MS;
font-color: #000000;
padding-top: 72px;
text-align: center }
.text { font: 8pt Trebuchet MS }
</style>
</head>
<body>
<h2>Using WebRequest</h2>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManagerId">
<Scripts>
<asp:ScriptReference Path="WebRequest.js" />
</Scripts>
</asp:ScriptManager>
</form>
<table>
<tr align="left">
<td>Make GET Request:</td>
<td>
<button id="Button1"
onclick="GetWebRequest()">GET</button>
</td>
</tr>
<tr align="left">
<td>Request Body:</td>
<td>
<button id="Button2"
onclick="PostWebRequest()">Body</button>
</td>
</tr>
<tr align="left">
<td>Request Timeout:</td>
<td>
<button id="Button3"
onclick="WebRequestTimeout()">Timeout</button>
</td>
</tr>
<tr align="left">
<td>Request Completed Handler:</td>
<td>
<button id="Button4"
onclick="WebRequestCompleted()">
Completed Handler</button>
</td>
</tr>
<tr align="left">
<td>Resolved Url:</td>
<td>
<button id="Button5"
onclick="GetWebRequestResolvedUrl()">
Resolved Url</button>
</td>
</tr>
<tr align="left">
<td>Request Executor:</td>
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 50 de 98
<td>
<button id="Button6"
onclick="WebRequestExecutor()">Executor</button>
</td>
</tr>
<tr align="left">
<td>Request Header:</td>
<td>
<button id="Button7"
onclick="WebRequestHeader()">Header</button>
</td>
</tr>
</table>
<hr />
<div id="ResultId" style="background-color:Aqua;"></div>
</body>
</html>

Script de Cliente
var getPage;
var postPage;
var displayElement;
function pageLoad()
{
getPage = "getTarget.htm";
postPage = "postTarget.aspx";
displayElement = $get("ResultId");
}

// This function performs a GET Web request to retrieve information
// from the Url specified in the query string.
function GetWebRequest()
{
alert("Performing Get Web request.");
// Instantiate the WebRequest object.
var wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url(getPage);
// Set the request verb.
wRequest.set_httpVerb("GET");
// Set user's context
wRequest.set_userContext("user's context");
// Set the web request completed event handler,
// for processing return data.
wRequest.add_completed(OnWebRequestCompleted);
// Clear the results page element.
displayElement.innerHTML = "";
// Execute the request.
wRequest.invoke();
}

// This function performs a POST Web request to upload
// information to the resource identified by the Url.
function PostWebRequest()
{
// Instantiate the WebRequest object.
var wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url(postPage);
// Set the request verb.
wRequest.set_httpVerb("POST");
var body = "Message=Hello! Do you hear me?"
wRequest.set_body(body);
wRequest.get_headers()["Content-Length"] = body.length;
// Set the web request completed event handler,
// for processing return data.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 51 de 98
wRequest.add_completed(OnWebRequestCompleted);
// Clear the results page element.
displayElement.innerHTML = "";
// Execute the request.
wRequest.invoke();
}

// This function adds and removes the Web request completed event handler.
function WebRequestCompleted()
{
// Instantiate the WebRequest.
var wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url(getPage);
// Set the web request completed event handler,
// for processing return data.
wRequest.add_completed(OnWebRequestCompleted);
alert("Added Web request completed handler");
// Remove the web request completed event handler.
// Comment the following two lines if you want to use the handler.
wRequest.remove_completed(OnWebRequestCompleted);
alert("Removed handler; the Web request return is not processed.");
// Execute the request.
wRequest.invoke();
}

// This function gets the resolved Url of the Web request instance.
function GetWebRequestResolvedUrl()
{
// Instantiate the WebRequest.
var wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url(getPage);
// Get the web request completed event handler.
var resUrl = wRequest.getResolvedUrl();
alert("Resolved Url: " + resUrl);
// Set the web request completed event handler,
// for processing return data.
wRequest.add_completed(OnWebRequestCompleted);
// Execute the request.
wRequest.invoke();
}

// This function gets and sets the Web request time out.
function WebRequestTimeout()
{
// Instantiate the WebRequest.
var wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url(getPage);
var defaultTimeout = wRequest.get_timeout();
// Set request timeout to 100 msec.
wRequest.set_timeout(100);
var newTimeout = wRequest.get_timeout();
alert("Default timeout: " + defaultTimeout);
alert("New timeout: " + newTimeout);
// Set the web request completed event handler,
// for processing return data.
wRequest.add_completed(OnWebRequestCompleted);
// Execute the request.
wRequest.invoke();
}

// This function sets the Web request executor, replacing the default one.
function WebRequestExecutor()
{
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 52 de 98
// Instantiate the WebRequest.
var wRequest = new Sys.Net.WebRequest();
// Create the executor. In this case it is an XMLHttpExecutor, equivalent
// to the default executor. But, you can create a custom one.
var executor = new Sys.Net.XMLHttpExecutor();
// Set the executor, replacing the default one.
// In this case the executor is equivalent to the default one.
wRequest.set_executor(executor);
// Get the current executor
var executor = wRequest.get_executor();
alert("Response availabe: " + executor.get_responseAvailable())
}

// This function sets an HTTP header for the Web request.
function WebRequestHeader()
{
// Instantiate the WebRequest object.
var wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url(postPage);
// Set the request verb.
wRequest.set_httpVerb("POST");
var body = "Message=Hello! Do you hear me?"
wRequest.set_body(body);
// Set the value of the HTTP header's "Content-Length".
wRequest.get_headers()["Content-Length"] = body.length;
// Set the web request completed event handler,
// for processing return data.
wRequest.add_completed(OnWebRequestCompletedHeader);
// Clear the results page element.
displayElement.innerHTML = "";
// Execute the request.
wRequest.invoke();
}

// This the handler for the Web request completed event
// that is used to display return data.
function OnWebRequestCompleted(executor, eventArgs)
{
if(executor.get_responseAvailable())
{
// Clear the previous results.
displayElement.innerHTML = "";
// Display Web request status.
DisplayWebRequestStatus(executor);
// Display Web request headers.
DisplayWebRequestHeaders(executor);
// Display Web request body.
DisplayWebRequestBody(executor);
}
else
{
if (executor.get_timedOut())
alert("Timed Out");
else
if (executor.get_aborted())
alert("Aborted");
}
}

// This the handler for the Web request completed event
// that is used to display header information.
function OnWebRequestCompletedHeader(executor, eventArgs)
{
if(executor.get_responseAvailable())
{
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 53 de 98

// Clear the previous results.
displayElement.innerHTML = "";
// Display Web request headers.
DisplayWebRequestHeaders(executor);
}
else
{
if (executor.get_timedOut())
alert("Timed Out");
else
if (executor.get_aborted())
alert("Aborted");
}
}

// This function is used to display the Web request status.
function DisplayWebRequestStatus(executor)
{
displayElement.innerHTML += "Status: [" +
executor.get_statusCode() + " " +
executor.get_statusText() + "]" + "<br/>"
}

// This function is used to display Web request HTTP headers.
function DisplayWebRequestHeaders(executor)
{
displayElement.innerHTML += "Headers: ";
displayElement.innerHTML += executor.getAllResponseHeaders() + "<br/>";
}

// This function is used to display the Web request body.
function DisplayWebRequestBody(executor)
{
displayElement.innerHTML += "Body: ";
if (document.all)
displayElement.innerText += executor.get_responseData();
else
// Firefox
displayElement.textContent += executor.get_responseData();
}

// This function is used to display the Web request message.
function DisplayInformation(message)
{
// Clear the previous results.
displayElement.innerHTML = "";
// Display information.
displayElement.innerHTML = "<br/>" + message;
}

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
3.4. Sys.Net.WebRequestExecutor (Clase)
Proporciona la clase base abstracta de la que se derivan los elementos de ejecucin de red.
Espacio de nombres: Sys.Net
Hereda: nada
MyExecutor.registerClass('MyExecutor', Sys.Net.WebRequestExecutor);
Miembros
Name Descripcin
Sys.Net.WebRequestExecutor (Constructor) Inicializa una instancia de Sys.Net.WebRequest
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 54 de 98
Executor cuando se implementa en una clase
derivada.
Sys.Net.WebRequestExecutor abort (Mtodo) Detiene el procesamiento adicional de la
solicitud actual.
Sys.Net.WebRequestExecutor executeRequest (Mtodo) Ejecuta una solicitud web.
Sys.Net.WebRequestExecutor.getAllResponseHeaders
(Mtodo)
Obtiene todos los encabezados de respuesta de
la solicitud actual.
Sys.Net.WebRequestExecutor.getResponseHeader
(Mtodo)
Obtiene el valor de un encabezado de respuesta
especfico en funcin del nombre del
encabezado.
Sys.Net.WebRequestExecutor aborted (Propiedad) Obtiene un valor que indica si se anul la
solicitud asociada al elemento de ejecucin.
Sys.Net.WebRequestExecutor object (Propiedad) Obtiene el objeto evaluado en formato JSON de
la respuesta.
Sys.Net.WebRequestExecutor responseAvailable
(Propiedad)
Obtiene un valor que indica si la solicitud se
complet correctamente.
Sys.Net.WebRequestExecutor responseData (Propiedad) Obtiene la representacin de texto del cuerpo de
la respuesta.
Sys.Net.WebRequestExecutor started (Propiedad) Obtiene un valor que indica si el ejecutor ha
iniciado el procesamiento de la solicitud.
Sys.Net.WebRequestExecutor statusCode (Propiedad) Obtiene un cdigo de estado correcto.
Sys.Net.WebRequestExecutor statusText (Propiedad) Obtiene informacin de estado acerca de una
solicitud que se complet correctamente.
Sys.Net.WebRequestExecutor timedOut (Propiedad) Obtiene un valor que indica si se agot el
tiempo de espera de la solicitud.
Sys.Net.WebRequestExecutor xml (Propiedad) Intenta obtener la respuesta a la solicitud actual
como un objeto XMLDOM.
Sys.Net.WebRequestExecutor webRequest (Propiedad) Obtiene el objeto WebRequest asociado al
elemento de ejecucin.
Comentarios
La clase Sys.Net.WebRequestExecutor es una clase base abstracta. No puede crear instancias de esta clase; en lugar de
ello, debe derivar clases de ella implementando un elemento de ejecucin de red.
Las solicitudes de red se envan mediante el flujo de nivel de comunicacin asincrnica a travs de un elemento de
ejecucin de red. Normalmente, los elementos de ejecucin se comunican con la red. Sin embargo, puede crear un
elemento de ejecucin de almacenamiento que interacte con una base de datos local en lugar de con la red o uno que
realice otro trabajo que implique un recurso externo.
En el ejemplo siguiente se muestra cmo la clase Sys.Net.XMLHttpExecutor se deriva de la clase WebRequestExecutor.
Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor',
Sys.Net.WebRequestExecutor);
3.5. Sys.Net.WebRequestManager (Clase)
Administra el flujo de solicitudes web emitidas por el objeto Sys.Net.WebRequest al objeto del elemento de ejecucin
asociado.
Espacio de nombres: Sys.Net
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 55 de 98
Hereda: nada
Sys.Net.WebRequestManager.memberName;
Miembros
Name Descripcin
Sys.Net.WebRequestManager (Constructor) Inicializa una nueva instancia de la clase
Sys.Net.WebRequestManager cuando se implementa
en una clase derivada.
Sys.Net.WebRequestManager
add_completedRequest (Mtodo)
Registra un controlador de evento de solicitud
completada de WebRequestManager.
Sys.Net.WebRequestManager
add_invokingRequest (Mtodo)
Registra un controlador de evento de solicitud de
llamada de WebRequestManager.
Sys.Net.WebRequestManager
remove_completedRequest (Mtodo)
Quita el controlador de eventos establecido por el
mtodo add_completedRequest.
Sys.Net.WebRequestManager
remove_invokingRequest (Mtodo)
Quita el controlador de eventos establecido por el
mtodo add_invokingRequest.
Sys.Net.WebRequestManager.executeRequest
(Mtodo)
Ejecuta la solicitud web especificada.
Sys.Net.WebRequestManager defaultExecutor
(Propiedad)
Obtiene o establece el elemento de ejecucin
predeterminado de la solicitud web.
Sys.Net.WebRequestManager defaultTimeout
(Propiedad)
Obtiene o establece el tiempo de espera
predeterminado de la solicitud web.
Sys.Net.WebRequestManager completedRequest
(Evento)
Se produce cuando se controla una solicitud.
Sys.Net.WebRequestManager invokingRequest
(Evento)
Se produce cuando se llama a una funcin de
controlador para la solicitud.
Comentarios
El elemento de ejecucin predeterminado asociado a un objeto WebRequest es una instancia de la clase
XmlHttpExecutor. El elemento de ejecucin es responsable de crear las solicitudes de red reales.
La clase WebRequestManager define el comportamiento predeterminado de todas las solicitudes web para que no sea
necesario especificar valores de configuracin de red de bajo nivel para cada solicitud.
Cada pgina slo contiene una instancia de WebRequestManager. Sin embargo, puede haber varias instancias de la
clase WebRequest y del elemento de ejecucin relacionado.
Ejemplo
En el ejemplo siguiente se muestra cmo utilizar la clase WebRequestManager para establecer las propiedades
comunes y ejecutar una solicitud web. En el ejemplo se muestra una pgina web y el script de cliente utilizado para
interactuar con la clase WebRequestManager.
Pgina Web
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title> WebRequestManager Example </title>
<style type="text/css">
body { font: 11pt Trebuchet MS;
font-color: #000000;
padding-top: 72px;
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 56 de 98
text-align: center }

.text { font: 8pt Trebuchet MS }
</style>
</head>
<body>
<h2>WebRequestManager Example</h2>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="scriptManagerId">
<Scripts>
<asp:ScriptReference Path="WebRequestManager.js" />
</Scripts>
</asp:ScriptManager>
</form>
<table>
<tr align="left">
<td>Make a Web request:</td>
<td>
<button id="Button1"
title="adds and remove handlers, too"
onclick="MakeWebRequest(); return false;">
Web Request</button>
</td>
</tr>
<tr align="left">
<td>Set, get default executor:</td>
<td>
<button id="Button2"
onclick="DefaultExecutor(); return false;">
Executor</button>
</td>
</tr>
<tr align="left">
<td>Set, get default timeout:</td>
<td>
<button id="Button3"
onclick="DefaultTimeout(); return false;">
Timeout</button>
</td>
</tr>
</table>
<hr />
<div id="ResultId" style="background-color:Aqua;"></div>
</body>
</html>

Script de Cliente
var displayElement;
function pageLoad()
{
displayElement = $get("ResultId");
}

// Adds invokingRequest and completedRequest
// handlers, and performs a Web request.
function MakeWebRequest()
{
// Clear the previous results.
resultElement.innerHTML = "";
// Instantiate a Web request.
wRequest = new Sys.Net.WebRequest();
// Set the handler to process the Web request.
Sys.Net.WebRequestManager.add_completedRequest(On_WebRequestCompleted);
alert("Added On_WebRequestCompleted handler.");
// Set the handler to call before the Web request is executed.
Sys.Net.WebRequestManager.add_invokingRequest(On_InvokingRequest);
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 57 de 98
alert("Added On_InvokingRequest handler.");
// Set the request Url.
wRequest.set_url("getTarget.htm");
// Execute the request.
// Notice that you do not use the executeRequest method of
// the WebRequestManager which is intended for internal
// use only as in: Sys.Net.WebRequestManager.executeRequest(wRequest).
// The correct way to execute a request is the following:
// wRequest.invoke();
Sys.Net.WebRequestManager.executeRequest(wRequest);
}

// Removes the event handlers that were previusly added.
function RemoveDefaultHandlers()
{
// Clear the previous results.
resultElement.innerHTML = "";
Sys.Net.WebRequestManager.remove_completedRequest(On_WebRequestCompleted);
alert("Removed On_WebRequestCompleted handler.");
Sys.Net.WebRequestManager.remove_invokingRequest(On_InvokingRequest);
alert("Removed On_InvokingRequest handler.");
}

// Gets and sets the default executor.
function DefaultExecutor()
{
// Clear the previous results.
resultElement.innerHTML = "";
// Get system default executor type.
var sysDefaultExecutor =
Sys.Net.WebRequestManager.get_defaultExecutorType();
alert("Get default executor:" + sysDefaultExecutor);
// Modify the default executor type.
Sys.Net.WebRequestManager.set_defaultExecutorType(
"Sys.Net.CustomExecutor");
var customDefaultExecutor =
Sys.Net.WebRequestManager.get_defaultExecutorType();
alert("Set default executor: " + customDefaultExecutor);
// Set the executor back to the system default. This is
// to allow the WebRequest script to run.
executor = "Sys.Net.XMLHttpExecutor";
Sys.Net.WebRequestManager.set_defaultExecutorType(
sysDefaultExecutor);
}

// Gets and sets the default timeout.
function DefaultTimeout()
{
// Clear the previous results.
resultElement.innerHTML = "";
// Get system default timeout.
var sysDefaultTimeout =
Sys.Net.WebRequestManager.get_defaultTimeout();
alert("Get default timeout: " + sysDefaultTimeout);
// Set custom default timeout.
Sys.Net.WebRequestManager.set_defaultTimeout(100);
var customDefaultTimeout =
Sys.Net.WebRequestManager.get_defaultTimeout();
alert("Set default timeout: " + customDefaultTimeout);
// Set the timeout back to the system default.
Sys.Net.WebRequestManager.set_defaultTimeout(
sysDefaultTimeout);
}

// The On_InvokingRequest can be used to perform
// processing prior to the Web request being executed.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 58 de 98
function On_InvokingRequest(executor, eventArgs)
{
alert("Executing OnInvokingRequest handler, before the Web request.");
// Add custom code to perform processing prior
// to the request being executed or to abort the request.
alert("The current executor is: " +
executor.get_defaultExecutorType());
// Use the eventArgs of type NetworkRequestEventArgs to access the
// current WebRequest instance.
var currentRequest = eventArgs.get_webRequest();
var requestUrl = currentRequest.getResolvedUrl();
alert("Current request URL: " + requestUrl);
}

// The On_WebRequestComplete occurs after the
// Web request has returned, and can be used to
// get error status, process returned data, etc...
function On_WebRequestCompleted(executor, eventArgs)
{
if(executor.get_responseAvailable())
{
// Clear the previous results.
resultElement.innerHTML = "";
// Display Web request status.
resultElement.innerHTML +=
"Status: [" + executor.get_statusCode() + " " +
executor.get_statusText() + "]" + "<br/>";
// Display Web request headers.
resultElement.innerHTML += "Headers: ";
resultElement.innerHTML += executor.getAllResponseHeaders() + "<br/>";
// Display Web request body.
resultElement.innerHTML += "Body: ";
resultElement.innerHTML += executor.get_responseData();
}
}
3.6. Sys.Net.WebServiceError (Clase)
Representa el tipo de objeto devuelto al explorador cuando un servicio Web produce un error.
Espacio de nombres: Sys.Net
Hereda: nada
Miembros
Nombre Descripcin
Sys.Net.WebServiceError (Constructor) Inicializa una nueva instancia de la clase Sys.Net.Web
ServiceError cuando se implementa en una clase derivada.
Sys.Net.WebServiceError.errorObject
(Propiedad)
Obtiene la informacin de error sin formato.
Sys.Net.WebServiceError.exceptionType
(Propiedad)
Obtiene el tipo de excepcin del error.
Sys.Net.WebServiceError.message
(Propiedad)
Obtiene el mensaje de error devuelto por el error.
Sys.Net.WebServiceError.statusCode
(Propiedad)
Obtiene el cdigo de estado para la respuesta HTTP.
Sys.Net.WebServiceError.stackTrace
(Propiedad)
Obtiene el seguimiento de la pila devuelto por el servidor.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 59 de 98
Sys.Net.WebServiceError.timedOut
(Propiedad)
Obtiene un valor que indica si se produjo un error en el
servicio Web debido a que se agot el tiempo.
Comentarios
WebServiceError es el tipo del objeto devuelto a la funcin de devolucin de llamada errnea.
Ejemplo
Descripcin
En el ejemplo siguiente se muestra cmo una funcin de devolucin de llamada errnea tiene acceso al objeto
WebServiceError.
Script de Cliente
// This is the failed callback function.
function OnFailed(error)
{
var stackTrace = error.get_stackTrace();
var message = error.get_message();
var statusCode = error.get_statusCode();
var exceptionType = error.get_exceptionType();
var timedout = error.get_timedOut();
// Display the error.
var RsltElem = document.getElementById("Results");
RsltElem.innerHTML = "Stack Trace: " + stackTrace + "<br/>" +
"Service Error: " + message + "<br/>" +
"Status Code: " + statusCode + "<br/>" +
"Exception Type: " + exceptionType + "<br/>" +
"Timedout: " + timedout;
}
3.7. Sys.Net.WebServiceProxy (Clase)
Proporciona un medio para llamar a un mtodo de un servicio Web especificado de forma asincrnica.
Espacio de nombres: Sys.Net
Hereda: nada
Miembros
Nombre Descripcin
Sys.Net.WebServiceProxy (Constructor) Cuando se implementa en una clase derivada,
inicializa una nueva instancia de la clase
Sys.Net.WebServiceError.
Sys.Net.WebServiceProxy invoke (Mtodo) Llama al mtodo de servicio Web especificado.
Sys.Net.WebServiceProxy.defaultFailedCallback
(Propiedad)
Obtiene o establece la funcin de devolucin de
llamada errnea predeterminada para el servicio.
Sys.Net.WebServiceProxy.defaultSucceededCallback
(Propiedad)
Obtiene o establece la funcin de devolucin de
llamada correcta predeterminada para el servicio.
Sys.Net.WebServiceProxy.defaultUserContext
(Propiedad)
Obtiene o establece el contexto de usuario
predeterminado para el servicio.
Sys.Net.WebServiceProxy.enableJsonp (Propiedad) Obtiene o establece un valor que indica si el
servicio admite JSONP para llamadas entre
dominios.
Sys.Net.WebServiceProxy.jsonpCallbackParameter
(Propiedad)
Obtiene o establece un valor que especifica el
nombre de la funcin de devolucin de llamada
para una solicitud JSONP.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 60 de 98
Sys.Net.WebServiceProxy.path (Propiedad) Obtiene o establece la ruta de acceso al servicio.
Sys.Net.WebServiceProxy.timeout (Propiedad) Obtiene o establece el tiempo de espera, en
milisegundos, para el servicio.
Comentarios
La nica ocasin en que se utiliza directamente la clase Sys.Net.WebServiceProxy es cuando no se conoce previamente
la ruta de acceso del servicio Web. En ese caso, no puede establecer el atributo Path del control ScriptReference en la
pgina. Un ejemplo tpico es cuando se enlaza un control en tiempo de ejecucin a un servicio Web.
Normalmente, no se crean instancias de la clase WebServiceProxy directamente. En lugar de ello, se utiliza una clase de
proxy derivada. Esta clase de proxy se genera como resultado de incluir una referencia del servicio Web en una pgina,
como se muestra en el ejemplo siguiente:
<asp:ScriptManager runat="server" ID="ScriptManager1">
<Scripts>
<asp:ScriptReference Path="MyScript.js" />
</Scripts>
</asp:ScriptManager>
Cada mtodo de clase de proxy generado llama al mtodo invoke para llamar al mtodo de servicio Web relacionado.
Nota
Al invocar un mtodo de proxy desde una funcin JavaScript, se realiza una solicitud web asincrnica que
invoca el mtodo de servicio Web correspondiente.Cuando termina la solicitud, se llama a la funcin de
devolucin de llamada de JavaScript correspondiente.
3.8. Sys.Net.XMLHttpExecutor (Clase)
Realiza solicitudes de red asincrnicas mediante la compatibilidad XMLHTTP del explorador.
Espacio de nombres: Sys.Net
Hereda: nada
var executor = new Sys.Net.XMLHttpExecutor();
Miembros
Name Descripcin
Sys.Net.XMLHttpExecutor (Constructor) Inicializa una nueva instancia de la clase Sys.Net.
XMLHttpExecutor cuando se implementa en una
clase derivada.
Sys.Net.XmlHttpExecutor abort (Mtodo) Detiene las solicitudes de red pendientes emitidas
por el elemento de ejecucin.
Sys.Net.XmlHttpExecutor executeRequest (Mtodo) Ejecuta una solicitud de red como se especifica en
la instancia de WebRequest asociada.
Sys.Net.XmlHttpExecutor.getAllResponseHeaders
(Mtodo)
Devuelve los encabezados de respuesta.
Sys.Net.WebRequestExecutor.getResponseHeader
(Mtodo)
Sys.Net.XmlHttpExecutor.getResponseHeader
(Mtodo)
Obtiene el valor de un encabezado de respuesta
especificado.
Sys.Net.XmlHttpExecutor aborted (Propiedad) Devuelve un valor que indica si se anul el
elemento de ejecucin.
Sys.Net.XmlHttpExecutor responseAvailable
(Propiedad)
Devuelve un valor que indica si la solicitud de red
termin sin que se anulara o agotara su tiempo de
espera.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 61 de 98
Sys.Net.XmlHttpExecutor responseData (Propiedad) Obtiene la representacin textual del cuerpo de la
respuesta.
Sys.Net.XmlHttpExecutor started (Propiedad) Devuelve un valor que indica si el elemento de
ejecucin ha reenviado la solicitud al objeto
XMLHTTP del explorador.
Sys.Net.XmlHttpExecutor statusCode (Propiedad) Obtiene el cdigo de estado del objeto
XMLHTTP del explorador.
Sys.Net.XmlHttpExecutor statusText (Propiedad) Obtiene el texto de estado del objeto XMLHTTP
del explorador.
Sys.Net.XmlHttpExecutor timedOut (Propiedad) Devuelve un valor que indica si se agot el tiempo
de espera del elemento de ejecucin.
Sys.Net.XmlHttpExecutor xml (Propiedad) Devuelve un objeto XMLDOM que contiene la
respuesta XML del objeto XMLHTTP del
explorador.
Comentarios
La clase XmlHttpExecutor acta como el elemento de ejecucin y es una implementacin de la clase abstracta
WebRequestExecutor.
Como el elemento de ejecucin predeterminado ya est definido, no es necesario crear una instancia de la clase y
asociarla a la solicitud web. Sin embargo, si define un elemento de ejecucin personalizado, debe crear una instancia de
dicho elemento y establecerla como el elemento de ejecucin predeterminado de la solicitud web.
Una vez completada la llamada a la red, el objeto XmlHttpExecutor slo se debe utilizar para obtener los datos de la
respuesta y, a continuacin, descartarse.
Ejemplo
En el ejemplo siguiente se muestra cmo se utilizan los mtodos y propiedades de la clase XmlHttpExecutor. En el
ejemplo se muestra una pgina web y el script de cliente que interacta con la clase XmlHttpExecutor.
var resultElementId;

function pageLoad()
{
resultElementId = $get("ResultId");
}

// This function aborts a Web request.
function AbortWebRequest()
{
// Create the WebRequest object.
wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url("getTarget.htm");
// Clear the results area.
resultElementId.innerHTML = "";
// Set the Completed event handler, for processing return data
wRequest.add_completed(OnCompleted);
// Make the request.
wRequest.invoke();
// Get the current executor.
var executor = wRequest.get_executor();
// Abort the request.
executor.abort();
// Check if the executor is aborted.
var execAborted = executor.get_aborted();
alert("Executor aborted: " + execAborted);
}

// This function executes a Web request.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 62 de 98
function ExecuteWebRequest()
{
// Create the WebRequest object.
wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url("getTarget.htm");
// Set the Completed event handler, for processing return data
wRequest.add_completed(OnCompleted);
// Clear the results area.
resultElementId.innerHTML = "";
// To use executeRequest you must instantiate the
// executor, assign it to the Web request instance,
// then call the executeRequest function.
// Note: Normally to make a Web request you use
// the invoke method of the WebRequest instance.
var executor = new Sys.Net.XMLHttpExecutor();
wRequest.set_executor(executor);
executor.executeRequest();
var started = executor.get_started();
alert("Executor started: " + started);
}

// This is the event handler called after the Web request returns.
function OnCompleted(executor, eventArgs)
{
if(executor.get_responseAvailable())
{
// Get the Web request instance.
var webReq = executor.get_webRequest();
// Display request Url.
alert(webReq.get_url());
// Clear the previous results.
resultElementId.innerHTML = "";
// Display the Web request status.
resultElementId.innerHTML +=
"Request Status: [" + executor.get_statusCode() + " " +
executor.get_statusText() + "]" + "<br/>";
// Display the Web request headers.
resultElementId.innerHTML += "Headers: <br/>";
// Get all the headers.
resultElementId.innerHTML += "All Request Headers: " +
executor.getAllResponseHeaders() + "<br/>";
// Get a specific header.
resultElementId.innerHTML += "Content-Type Header: " +
executor.getResponseHeader("Content-Type") +
"<br/>";
// Display Web request body.
resultElementId.innerHTML += "Body: <br/>";
resultElementId.innerText += executor.get_responseData();
}
else
{
if (executor.get_timedOut())
alert("Timed Out");
else
if (executor.get_aborted())
alert("Aborted");
}
}

// This is the event handler called after the Web request returns.
// It is designed for Web requests that return XML.
function OnSucceededXml(executor, eventArgs)
{
if (executor.get_responseAvailable())
{
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 63 de 98
// Display XML.
if (document.all)
resultElementId.innerText += executor.get_xml().xml;
else
// Firefox
resultElementId.textContent += "First node: " +
executor.get_xml().documentElement.nodeName;
}
else
{
if (executor.get_timedOut())
alert("Timed Out");
else
if (executor.get_aborted())
alert("Aborted");
}
}

// This function executes a Web request to get XML data.
function GetXml()
{
// Create the WebRequest object.
wRequest = new Sys.Net.WebRequest();
// Set the request Url.
wRequest.set_url("getTarget.xml");
// Set the Completed event handler for processing return data.
wRequest.add_completed(OnSucceededXml);
// Clear the results area.
resultElementId.innerText = "";
// Invoke the Web request.
wRequest.invoke();
}
4. Sys.Serialization (Espacio de nombres)
Contiene clases relacionadas con la serializacin de datos para la funcionalidad de cliente de AJAX en ASP.NET.
Tipos
Name Descripcin
Sys.Serialization.JavaScriptSerializer
(Clase)
Serializa los tipos de JavaScript en datos con formato JSON y
deserializa los datos con formato JSON en tipos de JavaScript
4.1. Sys.Serialization.JavaScriptSerializer (Clase)
Serializa los tipos de ECMAScript (JavaScript) en datos con formato JSON y deserializa los datos con formato JSON en
tipos de JavaScript
Espacio de nombres: Sys.Net
Hereda: nada
Miembros
Name Descripcin
Sys.Serialization.JavaScriptSerializer
(Constructor)
Inicializa una nueva instancia de la clase
Sys.Serialization.JavaScriptSerializer.
Sys.Serialization.JavaScriptSerializer serialize
(Mtodo)
Convierte un grfico de objeto de JavaScript en una
cadena de JSON.
Sys.Serialization.JavaScriptSerializer
deserialize (Mtodo)
Convierte una cadena de JSON en un grfico de objeto de
JavaScript.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 64 de 98
Comentarios
La clase JavaScriptSerializer slo contiene mtodos estticos.
5. Sys.Services (Espacio de nombres)
Contiene tipos que proporcionan acceso de script en aplicaciones cliente ASP.NET habilitadas para AJAX al servicio de
autenticacin de ASP.NET, el servicio de perfil y otros servicios de aplicacin. El espacio de nombres Sys.Services forma
parte de Microsoft Ajax Library.
Tipos
Nombre Descripcin
Sys.Services.AuthenticationService
(Clase)
Proporciona la clase proxy cliente del servicio de
autenticacin.
Sys.Services.ProfileGroup (Clase) Define un grupo de perfiles.
Sys.Services.ProfileService (Clase) Proporciona la clase de proxy de cliente para el servicio de
perfil.
Sys.Services.RoleService (Clase) Proporciona la clase proxy cliente del servicio de funciones.
5.1. Sys.Services.AuthenticationService (Clase)
Proporciona la clase proxy cliente del servicio de autenticacin.
Espacio de nombres: Sys.Services
Hereda: nada
Miembros
Name Descripcin
Sys.Services.AuthenticationService (Constructor) Inicializa una nueva instancia de la clase
Sys.Services.AuthenticationService.
Sys.Services.AuthenticationService.DefaultWebServicePath
(Campo)
Especifica la ruta de acceso del servicio de
autenticacin predeterminado.
Sys.Services AuthenticationService login (Mtodo) Autentica las credenciales del usuario.
Sys.Services AuthenticationService logout (Mtodo) Cierra la sesin del usuario autenticado
actualmente.
Sys.Services AuthenticationService defaultFailedCallback
(Propiedad)
Obtiene o establece el nombre de la
funcin de devolucin de llamada errnea
predeterminada.
Sys.Services AuthenticationService
defaultLoginCompletedCallback (Propiedad)
Obtiene o establece el nombre de la
funcin de devolucin de llamada
predeterminada de inicio de sesin
completado.
Sys.Services AuthenticationService
defaultLogoutCompletedCallback (Propiedad)
Obtiene o establece el nombre de la
funcin de devolucin de llamada
predeterminada de cierre de sesin
completado.
Sys.Services AuthenticationService
defaultSucceededCallback (Propiedad)
Obtiene o establece la funcin de
devolucin de llamada correcta
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 65 de 98
predeterminada para el servicio.
Sys.Services AuthenticationService defaultUserContext
(Propiedad)
Obtiene o establece el contexto de usuario
predeterminado para el servicio.
Sys.Services AuthenticationService isLoggedIn (Propiedad) Obtiene el estado de autenticacin del
usuario actual.
Sys.Services AuthenticationService path (Propiedad) Obtiene o establece la ruta de acceso del
servicio de autenticacin.
Sys.Services AuthenticationService timeout (Propiedad) Obtiene o establece el valor de tiempo de
espera del servicio de autenticacin.
Comentarios
La clase AuthenticationService proporciona acceso de script a la autenticacin de usuario. Llama a los mtodos del
servicio de autenticacin a travs de la misma infraestructura que se utiliza para llamar a cualquier otro mtodo de
servicio Web.
Nota
El servicio de autenticacin integrado se encuentra en el servidor en una ubicacin predefinida.
La clase AuthenticationService es un singleton; slo tiene una instancia con un punto de acceso global. Siempre est
disponible para la aplicacin y no es necesario crear instancias de ella.
Ejemplo
Descripcin
En el ejemplo siguiente se muestra cmo utilizar la clase AuthenticationService para comprobar si un usuario est
autenticado.
Cdigo de Cliente
// Define global variables.
var usernameEntry;
var passwordEntry;
var username;
var password;
var textLoggedIn;
var textNotLoggedIn;
var buttonLogin;
var buttonLogout;

function pageLoad()
{
usernameEntry = $get("NameId");
passwordEntry = $get("PwdId");
username = $get("username");
password = $get("password");
textLoggedIn = $get("loggedin");
textNotLoggedIn = $get("notloggedin");
buttonLogin = $get("ButtonLogin");
buttonLogout = $get("ButtonLogout");
}

// This function sets and gets the default
// login completed callback function.
function SetDefaultLoginCompletedCallBack()
{
// Set the default callback function.
Sys.Services.AuthenticationService.set_defaultLoginCompletedCallback
(OnLoginCompleted);
// Get the default callback function.
var callBack = Sys.Services.AuthenticationService.
get_defaultLoginCompletedCallback();
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 66 de 98
}

// This function sets and gets the default
// logout completed callback function.
function SetDefaultLogoutCompletedCallBack()
{
// Set the default callback function.
Sys.Services.AuthenticationService.set_defaultLogoutCompletedCallback
(OnLogoutCompleted);
// Get the default callback function.
var callBack = Sys.Services.AuthenticationService.
get_defaultLogoutCompletedCallback();
}

// This function sets and gets the default failed callback function.
function SetDefaultFailedCallBack()
{
// Set the default callback function.
Sys.Services.AuthenticationService.set_defaultFailedCallback(OnFailed);
// Get the default callback function.
var callBack =
Sys.Services.AuthenticationService.get_defaultFailedCallback();
}

// This function calls the login method of the authentication service to
// verify the credentials entered by the user. If the credentials are
// authenticated, the authentication service issues a forms authentication
// cookie.
function OnClickLogin()
{
// Set the default callback functions.
SetDefaultLoginCompletedCallBack();
SetDefaultLogoutCompletedCallBack();
SetDefaultFailedCallBack();
// Call the authetication service to authenticate
// the credentials entered by the user.
Sys.Services.AuthenticationService.login(username.value,
password.value, false,null,null,null,null,"User Context");
}

// This function calls the logout method of the authentication service
// to clear the forms authentication cookie.
function OnClickLogout()
{
// Clear the forms authentication cookie.
Sys.Services.AuthenticationService.logout(null, null, null, null);
}

// This is the callback function called if the authentication fails.
function OnFailed(error, userContext, methodName)
{
// Display feedback message.
DisplayInformation("error:message = " + error.get_message());
DisplayInformation("error:timedOut = " + error.get_timedOut());
DisplayInformation("error:statusCode = " + error.get_statusCode());
}

// The callback function called if the authentication completed successfully.
function OnLoginCompleted(validCredentials, userContext, methodName)
{
// GetPageElements();

// Clear the user password.
password.value = "";
// On success there will be a forms authentication cookie in the browser.
if (validCredentials == true)
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 67 de 98
{
// Clear the user name.
username.value = "";
// Hide login fields.
buttonLogin.style.visibility = "hidden";
usernameEntry.style.visibility = "hidden";
passwordEntry.style.visibility = "hidden";
textNotLoggedIn.style.visibility = "hidden";
// Display logout fields.
buttonLogout.style.visibility = "visible";
textLoggedIn.style.visibility = "visible";
// Clear the feedback area.
DisplayInformation("");
}
else
{
textLoggedIn.style.visibility = "hidden";
textNotLoggedIn.style.visibility = "visible";
DisplayInformation("Login Credentials Invalid. Could not login");
}
}

// This is the callback function called if the user logged out successfully.
function OnLogoutCompleted(result)
{
// Display login fields.
usernameEntry.style.visibility = "visible";
passwordEntry.style.visibility = "visible";
textNotLoggedIn.style.visibility = "visible";
buttonLogin.style.visibility = "visible";
// Hide logout fields.
buttonLogout.style.visibility = "hidden";
textLoggedIn.style.visibility = "hidden";
}

// This function displays feedback information for the user.
function DisplayInformation(text)
{
// var feedBack = document.getElementById("FeedBackID").innerHTML;
document.getElementById("FeedBackID").innerHTML = "<br/>" + text;
// Display authentication service information.
var userLoggedIn =
Sys.Services.AuthenticationService.get_isLoggedIn();
var authServiceTimeout =
Sys.Services.AuthenticationService.get_timeout();
var userLoggedInfo =
"<br/> User logged in: " + userLoggedIn;
var timeOutInfo =
"<br/> Authentication service timeout: " + authServiceTimeout;
document.getElementById("FeedBackID").innerHTML =
userLoggedInfo + timeOutInfo;
}

// Notify ScriptManager that this is the end of the script.
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
5.2. Sys.Services.ProfileGroup (Clase)
Define un grupo.
Espacio de nombres: Sys.Services
Hereda: nada
var profileGroup = Sys.Services.ProfileGroup();
Miembros
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 68 de 98
Name Descripcin
Sys.Services.ProfileGroup
(Constructor)
Inicializa una nueva instancia de la clase Sys.Services.ProfileGroup.
Comentarios
La clase ProfileGroup define el tipo de un elemento como un grupo en la coleccin properties de la clase Sys.Services.
ProfileService. Se tiene acceso a las propiedades de grupo de perfil como subpropiedades del grupo relacionado, como
se muestra en el siguiente ejemplo de ECMAScript (JavaScript):
var Street = Sys.Services.ProfileService.properties.Address.Street;
var City = Sys.Services.ProfileService.properties.Address.City;
En el ejemplo siguiente se muestra cmo crear un grupo de propiedades en JavaScript que forme parte de la
coleccin properties. En el ejemplo, Sys.Services.ProfileService.properties.Address es del
tipo ProfileGroup.
Sys.Services.ProfileService.properties.Address =
new Sys.Services.ProfileGroup();
Sys.Services.ProfileService.properties.Address.Street = "street name";
Sys.Services.ProfileService.properties.Address.City = "city name";
Sys.Services.ProfileService.properties.Address.State = "state name";
Tambin puede definir un grupo de perfiles en el archivo Web.config utilizando la siguiente sintaxis:
<system.web>
<profile enabled="true">
<properties>
<group name="Address">
<add name="Street" type="System.String" />
<add name="City" type="System.String" />
<add name="PostalCode" type="System.String" />
</group>
</properties>
</profile>
<system.web>
5.3. Sys.Services.ProfileService (Clase)
Proporciona la clase de proxy de cliente para el servicio de perfil.
Espacio de nombres: Sys.Services
Hereda: nada
Miembros
Name Descripcin
Sys.Services.ProfileService (Constructor) Inicializa una nueva instancia de la clase Sys.Services.
ProfileService.
Sys.Services ProfileService
DefaultWebServicePath (Campo)
Especifica la ruta de acceso del servicio de perfiles
predeterminado.
Sys.Services ProfileService properties
(Campo)
Contiene la informacin del perfil.
Sys.Services ProfileService load (Mtodo) Carga las propiedades de perfil especificadas.
Sys.Services ProfileService save (Mtodo) Guarda las propiedades de perfil especificadas.
Sys.Services ProfileService
defaultFailedCallback (Propiedad)
Obtiene o establece la funcin de devolucin de llamada
predeterminada en caso de error.
Sys.Services ProfileService
defaultLoadCompletedCallback (Propiedad)
Obtiene o establece la funcin de devolucin de llamada
predeterminada de carga completada.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 69 de 98
Sys.Services ProfileService
defaultSaveCompletedCallback (Propiedad)
Obtiene o establece el nombre de la funcin de
devolucin de llamada predeterminada de operacin de
guardado completada.
Sys.Services ProfileService
defaultSucceededCallback (Propiedad)
Obtiene o establece la funcin de devolucin de llamada
correcta predeterminada para el servicio.
Sys.Services ProfileService
defaultUserContext (Propiedad)
Obtiene o establece el contexto de usuario
predeterminado para el servicio.
Sys.Services ProfileService path (Propiedad) Obtiene o establece la ruta de acceso del servicio de
perfil.
Sys.Services ProfileService timeout
(Propiedad)
Obtiene o establece el valor de tiempo de espera del
servicio de perfil.
Comentarios
La clase ProfileService proporciona acceso de script a la informacin del perfil de un usuario. Llama a los mtodos del
servicio de perfil a travs de la misma infraestructura utilizada para llamar a cualquier otro mtodo de servicio Web.
Nota
El servicio de perfil integrado se encuentra en el servidor en una ubicacin predefinida.
La clase Profile es un singleton; slo tiene una instancia que proporciona un punto de acceso global. Siempre est
disponible para la aplicacin y no es necesario crear instancias de ella.
Ejemplo
Descripcin
En el ejemplo siguiente se muestra cmo utilizar la clase ProfileService para obtener informacin del perfil del usuario
actualmente autenticado.
Cdigo de Cliente
// The OnClickLogin function is called when the user clicks the Login button.
// It calls the AuthenticationService.login to authenticates the user.
function OnClickLogin()
{
Sys.Services.AuthenticationService.login(
document.form1.userId.value,
document.form1.userPwd.value,false,null,null,
OnLoginComplete, AuthenticationFailedCallback,
"User context information.");
}

// The OnClickLogout function is called when the user clicks the Logout
// button.It logs out the current authenticated user.
function OnClickLogout()
{
Sys.Services.AuthenticationService.logout(
null, OnLogoutComplete, AuthenticationFailedCallback,null);
}

function OnLogoutComplete(result, userContext, methodName)
{
// Code that performs logout housekeeping goes here.
}

// This function is called after the user is authenticated. It loads the
// user's profile. This is the callback function called
// if the authentication completed successfully.
function OnLoginComplete(validCredentials, userContext, methodName)
{
if(validCredentials == true)
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 70 de 98
{
DisplayInformation("Welcome " + document.form1.userId.value);
// Set the default failed callback function.
DefaultFailedCallback();
// Set the default load callback function.
DefaultLoadCompletedCallback();
// Set the default save callback function.
DefaultSaveCompletedCallback();
// Get path and timeout
GetPathAndTimeout();
LoadProfile();
// Hide or make visible page display elements.
GetElementById("loginId").style.visibility = "hidden";
GetElementById("setProfProps").style.visibility = "visible";
GetElementById("logoutId").style.visibility = "visible";
}
else
{
DisplayInformation("Could not login");
}
}

// This is the callback function called if the authentication failed.
function AuthenticationFailedCallback(error_object, userContext, methodName)
{
DisplayInformation("Authentication failed with this error: " +
error_object.get_message());
}

// Gets the profile service path and timeout.
function GetPathAndTimeout()
{
// Get the profile service path
var path = Sys.Services.ProfileService.get_path();
if (path == "") path = "standard default path";
alert("The profile service path is: " + path);
// Get the profile service timeout
var timeout = Sys.Services.ProfileService.get_timeout();
alert("The profile service timeout is: " + timeout);
}

// Sets and gets the default load completed callback function.
function DefaultLoadCompletedCallback()
{
// Set default load completed callback function.
Sys.Services.ProfileService.set_defaultLoadCompletedCallback
(LoadCompletedCallback);
// Get default load completed callback function.
var defaultLoadCompletedCallback =
Sys.Services.ProfileService.get_defaultLoadCompletedCallback();
alert("The default load completed callback is: " +
defaultLoadCompletedCallback);
}

// Sets and gets the default save completed callback function.
function DefaultSaveCompletedCallback()
{
// Set default load completed callback function.
Sys.Services.ProfileService.set_defaultSaveCompletedCallback
(SaveCompletedCallback);
// Get default save completed callback function.
var defaultSaveCompletedCallback =
Sys.Services.ProfileService.get_defaultSaveCompletedCallback();

alert("The default save completed callback is: " +
defaultSaveCompletedCallback);
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 71 de 98
}
// Sets and gets the default failed callback function.
function DefaultFailedCallback()
{
// Set default failed callback function.
Sys.Services.ProfileService.set_defaultFailedCallback
(ProfileFailedCallback);
// Get default failed callback function.
var defaultFailedCallback =
Sys.Services.ProfileService.get_defaultFailedCallback();
alert("The default failed callback is: " + defaultFailedCallback);
}

// Loads the profile of the current authenticated user.
function LoadProfile()
{
Sys.Services.ProfileService.load(null,
LoadCompletedCallback, ProfileFailedCallback, null);
}

// Saves the new profile information entered by the user.
function SaveProfile()
{
Sys.Services.ProfileService.properties.Backgroundcolor =
GetElementById("bgcolor").value;
Sys.Services.ProfileService.properties.Foregroundcolor =
GetElementById("fgcolor").value;
Sys.Services.ProfileService.save(null,
SaveCompletedCallback, ProfileFailedCallback, null);
}

// Reads the profile information and displays it.
function LoadCompletedCallback(numProperties, userContext, methodName)
{
document.bgColor =
Sys.Services.ProfileService.properties.Backgroundcolor;
document.fgColor =
Sys.Services.ProfileService.properties.Foregroundcolor;
}

// This is the callback function called if the profile was saved successfully.
function SaveCompletedCallback(numProperties, userContext, methodName)
{
LoadProfile();
// Hide the area that contains the controls to set the profile props.
SetProfileControlsVisibility("hidden");
}

// This is the callback function called
// if the profile load or save operations failed.
function ProfileFailedCallback(error_object, userContext, methodName)
{
alert("Profile service failed with message: " +
error_object.get_message());
}

// Utility functions.

// This function sets the visibilty for the area containing the page elements
// for settings profiles.
function SetProfileControlsVisibility(currentVisibility)
{
GetElementById("setProfileProps").style.visibility = currentVisibility;
}

// Utility function to display user's information.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 72 de 98
function DisplayInformation(text)
{
document.getElementById('placeHolder').innerHTML += "<br/>"+ text;
}

function GetElementById(elementId)
{
var element = document.getElementById(elementId);
return element;
}
5.4. Sys.Services.RoleService (Clase)
Proporciona una clase de proxy cliente para el servicio de funciones de ASP.NET.
Espacio de nombres: Sys.Services
Hereda: Sys.Net.WebServiceProxy
Miembros
Name Descripcin
Sys.Services.RoleService
DefaultWebServicePath (Campo)
Especifica la ruta de acceso al servicio de funciones
predeterminado.
Sys.Services.RoleService (Constructor) Inicializa una nueva instancia de la clase RoleService.
Sys.Services RoleService load (Mtodo) Carga las funciones del usuario autenticado actualmente.
Sys.Services RoleService defaultFailedCallback
(Propiedad)
Obtiene o establece el nombre de la funcin de
devolucin de llamada errnea predeterminada.
Sys.Services RoleService
defaultLoadCompletedCallback (Propiedad)
Obtiene o establece el nombre de la funcin de
devolucin de llamada predeterminada de carga
completada.
Sys.Services RoleService
defaultSucceededCallback (Propiedad)
Obtiene o establece la funcin de devolucin de llamada
correcta predeterminada para el servicio.
Sys.Services RoleService defaultUserContext
(Propiedad)
Obtiene o establece el contexto de usuario
predeterminado para el servicio.
Sys.Services RoleService IsUserinRole
(Propiedad)
Comprueba si el usuario autenticado actualmente tiene la
funcin especificada.
Sys.Services RoleService path (Propiedad) Obtiene o establece la ruta de acceso del servicio de
funciones.
Sys.Services RoleService roles (Propiedad) Obtiene las funciones del usuario autenticado
actualmente.
Sys.Services RoleService timeout (Propiedad) Obtiene o establece el valor de tiempo de espera del
servicio de funciones.
Comentarios
La clase RoleService proporciona acceso de script a la informacin de las funciones del usuario actualmente
autenticado. La clase llama a los mtodos del servicio de funciones a travs de la misma infraestructura que se utiliza
para llamar a otros mtodos de servicio Web. El servicio de funciones web se implementa como una clase con una nica
instancia (singleton). Siempre est disponible en la aplicacin a travs de la clase de proxy RoleService y no es necesario
crear instancias de ella.
Ejemplo
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 73 de 98
Descripcin
En el ejemplo siguiente se muestra cmo utilizar la clase RoleService para obtener las funciones del usuario
actualmente autenticado.
Cdigo de Cliente
var roleProxy;
var roles;
// This function creates the role proxy and sets its
// default callback functions.
function pageLoad()
{
// Create role service proxy.
roleProxy = Sys.Services.RoleService;
// Set the default failed callback function.
DefaultFailedCallBack();
// Set the default load completed callback function.
DefaultLoadCompletedCallBack();
}

// This function sets and gets the role service
// default failed callback function.
function DefaultFailedCallBack()
{
// Set default failed callback function.
roleProxy.set_defaultFailedCallback(FailedCallback);
// Get the default callback function.
var failedCallBack = roleProxy.get_defaultFailedCallback();
alert(failedCallBack);
}

// This function sets and gets the role service
// default load completed callback function.
function DefaultLoadCompletedCallBack()
{
// Set the default callback function.
roleProxy.set_defaultLoadCompletedCallback(LoadCompletedCallback);
// Get the default callback function.
var loadCompletedCallBack = roleProxy.get_defaultLoadCompletedCallback();
alert(loadCompletedCallBack);
}

// This function checks if the currently authenticated user belongs to the
// passed role.
function UserIsInRole(role)
{
DisplayInformation("");
var isUserInRole = roleProxy.isUserInRole(role);
DisplayInformation("The user is in the " + role + "role:" + isUserInRole);
}

// This function gets the role service path.
function GetRoleServicePath()
{
// Get the role service path.
var roleServicePath = Sys.Services.RoleService.get_path();
if (roleServicePath == "")
{
DisplayInformation("The role service path is the default value.");
}
}

// This function gets the roles of the currently authenticated user.
function ReadUserRoles()
{
// Clear the feedback output.
DisplayInformation("");
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 74 de 98
// You must load the user's roles first before you can use them.
roleProxy.load();
// Read the user's roles.
roles = roleProxy.get_roles();
}

// This function gets the role service timeout.
function GetRoleServiceTimeout()
{
// Get the role service path.
var roleServiceTimeout = Sys.Services.RoleService.get_timeout();
DisplayInformation("Role service timeout: " + roleServiceTimeout);
}

// This is the callback function called if the role service load function
// completed.
function LoadCompletedCallback(roles)
{
// Read the user's roles loaded before.
roles.sort();
for(var i = 0; i < roles.length; i++)
{
var roleInfo = "Role: " + roles[i];
DisplayInformation(roleInfo);
}
}

// This is the callback function called if the role service fails.
function FailedCallback(error)
{
DisplayInformation("Error: " + error.get_message());
}

// This function displays user's feedback information.
function DisplayInformation(text)
{
document.getElementById('placeHolder').innerHTML = "<br/>"+ text;
}

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
6. Sys.UI (Espacio de nombres)
Contiene tipos relacionados con la interfaz de usuario (IU), como controles, eventos y propiedades de IU en Microsoft
Ajax Library.
Tipos
Nombre Descripcin
Sys.UI.Behavior (Clase) Proporciona una clase base para todos los comportamientos del clienteAJAX
de ASP.NET.
Sys.UI.Bounds (Clase) Crea un objeto que contiene un conjunto de coordenadas enteras que
representan la posicin, el ancho y el alto.
Sys.UI.Control (Clase) Proporciona la clase base para todos los controles de cliente AJAX de
ASP.NET.
Sys.UI.DomElement (Clase) Define los mtodos estticos y propiedades que proporcionan las API
auxiliares para manipular e inspeccionar elementos DOM.
Sys.UI.DomEvent (Clase) Proporciona acceso en distintos exploradores a propiedades de eventos DOM
y API auxiliares que se utilizan para asociar controladores a los eventos de
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 75 de 98
elementos DOM.
Sys.UI.Key (Enumeracin) Describe los cdigos de tecla.
Sys.UI.MouseButton
(Enumeracin)
Describe las ubicaciones del botn del mouse.
Sys.UI.Point (Clase) Crea un objeto que contiene un conjunto de coordenadas enteras que
representan una posicin.
Sys.UI.VisibilityMode
(Enumeracin)
Describe la disposicin de un elemento DOM en la pgina cuando la
propiedad visible del elemento est establecida en false.
6.1. Sys.UI.Behavior (Clase)
Proporciona una clase base para todos los comportamientos AJAX en ASP.NET.
Espacio de nombres: Sys.UI
Hereda: Sys.Component
var a = new MyBehavior();
Constructores
Name Descripcin
Sys.UI.Behavior
(Constructor)
Cuando se invalida en una clase derivada, inicializa una instancia de esa clase.
Miembros
Name Descripcin
Sys.UI.Behavior dispose
(Mtodo)
Quita el objeto Sys.UI.Behavior actual de la aplicacin.
Sys.UI.Behavior
getBehaviorByName (Mtodo)
Obtiene una instancia Behavior con la propiedad name especificada del
elemento DOM (Modelo de objetos de documento) especificado.
Sys.UI.Behavior
getBehaviorsByType (Mtodo)
Obtiene una matriz de comportamientos que son del tipo especificado del
elemento DOM especificado.
Sys.UI.Behavior getBehaviors
(Mtodo)
Obtiene una coleccin que contiene los comportamientos asociados al
elemento DOM especificado.
Sys.UI.Behavior initialize
(Mtodo)
Inicializa el objeto Behavior actual.
Sys.UI.Behavior element
(Propiedad)
Obtiene el elemento DOM al que est asociado el objeto Sys.UI.
Behavior actual.
Sys.UI.Behavior id (Propiedad) Obtiene o establece el identificador del objeto Behavior.
Sys.UI.Behavior name
(Propiedad)
Obtiene o establece el nombre del objeto Behavior.
Comentarios
Un comportamiento es un componente que extiende la funcionalidad del elemento de DOM al que est asociado.
No se debe crear una instancia de la clase Behavior directamente, ya que es una clase base de la que se derivan otros
comportamientos.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 76 de 98
6.2. Sys.UI.Bounds (Clase)
Crea un objeto que contiene un conjunto de coordenadas enteras que representan la posicin, el ancho y el alto.
Espacio de nombres: Sys.UI
Hereda: nada
var objectBoundsVar = new Sys.UI.Bounds(x, y, width, height);
Constructores
Name Descripcin
Sys.UI.Bounds (Constructor) Inicializa una nueva instancia de la clase Sys.UI.Bounds.
Miembros
Name Descripcin
Sys.UI.Bounds height (Propiedad) Obtiene el alto, en pxeles, del objeto Bounds.
Sys.UI.Bounds width (Propiedad) Obtiene el ancho, en pxeles, del objeto Bounds.
Sys.UI.Bounds x (Propiedad) Obtiene la coordenada x del objeto Bounds en pxeles.
Sys.UI.Bounds y (Propiedad) Obtiene la coordenada y del objeto Bounds en pxeles.
Comentarios
El mtodo getBounds de la clase Sys.UI.DomElement devuelve un objeto Bounds.
Ejemplo
En el ejemplo siguiente se muestra cmo usar la clase Bounds.
// Get the bounds of the element
var elementRef = $get("Label1");
var elementBounds = Sys.UI.DomElement.getBounds(elementRef);
var result = '';
result += "Label1 bounds x = " + elementBounds.x + "<br/>";
result += "Label1 bounds y = " + elementBounds.y + "<br/>";
result += "Label1 bounds width = " + elementBounds.width + "<br/>";
result += "Label1 bounds height = " + elementBounds.height + "<p/>";
6.3. Sys.UI.Control (Clase)
Proporciona la clase base para todos los controles de cliente AJAX de ASP.NET.
Espacio de nombres: Sys.UI
Hereda: Sys.Component
var a = new MyControl(element);
Constructores
Name Descripcin
Sys.UI.Control
(Constructor)
Cuando se llama desde una clase derivada, inicializa una nueva instancia de
esa clase.
Miembros
Name Descripcin
Sys.UI.Control addCssClass
(Mtodo)
Agrega una clase CSS al elemento DOM (Modelo de objetos de documento)
HTML al que est asociado el objetoControl actual.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 77 de 98
Sys.UI.Control dispose
(Mtodo)
Quita el objeto Control actual de la aplicacin liberando todos los recursos
asociados y liberando la memoria utilizada por el control.
Sys.UI.Control initialize
(Mtodo)
Inicializa el objeto Control actual.
Sys.UI.Control
onBubbleEvent (Mtodo)
Se llama cuando el mtodo raiseBubbleEvent provoca un evento.
Sys.UI.Control
raiseBubbleEvent (Mtodo)
Llama al mtodo onBubbleEvent del control principal.
Sys.UI.Control
removeCssClass (Mtodo)
Quita una clase CSS del elemento DOM al que est asociado el
objeto Control actual.
Sys.UI.Control
toggleCssClass (Mtodo)
Activa o desactiva una clase CSS del elemento DOM al que est asociado el
objeto Control actual.
Sys.UI.Control element
(Propiedad)
Obtiene el elemento DOM al que est asociado el objeto Control actual.
Sys.UI.Control id
(Propiedad)
Obtiene o establece el identificador del objeto Control actual.
Sys.UI.Control parent
(Propiedad)
Obtiene o establece el control principal del objeto Control actual.
Sys.UI.Control role
(Propiedad)
Obtiene una cadena que representa el rol del control.
Sys.UI.Control
visibilityMode (Propiedad)
Obtiene o establece el valor de Sys.UI.VisibilityMode del objeto Control
actual.
Sys.UI.Control visible
(Propiedad)
Obtiene o establece la visibilidad del objeto Control actual.
Comentarios
Sys.UI.Control es una clase base y no deben crearse directamente instancias de ella.
Nota
Las instancias de las clases derivadas de Sys.UI.Control no pueden asociarse a un elemento Label en el
explorador Opera.
6.4. Sys.UI.DomElement (Clase)
Define los mtodos estticos y propiedades que proporcionan las API auxiliares para manipular e inspeccionar
elementos DOM.
Espacio de nombres: Sys.UI
Hereda: nada
var domElementVar = Sys.UI.DomElement.getElementById(strDomElementID)
Constructores
Name Descripcin
Sys.UI.DomElement (Constructor) Inicializa una nueva instancia de la clase Sys.UI.DomElement.
Miembros
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 78 de 98
Name Descripcin
Sys.UI.DomElement
addCssClass (Mtodo)
Agrega una clase CSS a un elemento DOM si la clase no forma parte
todava del elemento DOM.
Sys.UI.DomElement
containsCssClass (Mtodo)
Obtiene un valor que indica si el elemento DOM contiene la clase CSS
especificada.
Sys.UI.DomElement $get
(Mtodo)
Proporciona un acceso directo al mtodo getElementById de la clase
Sys.UI.DomElement.
Sys.UI.DomElement
getBounds (Mtodo)
Obtiene un conjunto de coordenadas enteras que representan la posicin, el
ancho y el alto de un elemento DOM.
Sys.UI.DomElement
getElementById (Mtodo)
Obtiene un elemento DOM que tiene el atributo id especificado.
Sys.UI.DomElement
getLocation (Mtodo)
Obtiene la posicin absoluta de un elemento DOM respecto a la esquina
superior izquierda del marco propietario o ventana.
Sys.UI.DomElement
getVisibilityMode (Mtodo)
Devuelve un valor que representa las caractersticas de diseo de un
elemento DOM cuando se oculta invocando el mtodo Sys.UI.
DomElement.setVisible.
Sys.UI.DomElement
getVisible (Mtodo)
Obtiene un valor que indica si un elemento DOM est actualmente visible
en la pgina web.
Sys.UI.DomElement
removeCssClass (Mtodo)
Quita una clase CSS de un elemento DOM.
Sys.UI.DomElement
setLocation (Mtodo)
Establece la posicin de un elemento DOM.
Sys.UI.DomElement
setVisibilityMode (Mtodo)
Establece las caractersticas de diseo de un elemento de DOM cuando est
oculto invocando el mtodoSys.UI.DomElement.setVisible.
Sys.UI.DomElement
setVisible (Mtodo)
Establece un elemento DOM para que est visible u oculto.
Sys.UI.DomElement
toggleCssClass (Mtodo)
Activa o desactiva una clase CSS en un elemento DOM.
Comentarios
No se puede crear una instancia de la clase DomElement.
Ejemplo
En el ejemplo siguiente se muestra cmo usar la clase DomElement. En lugar de agregar el controlador click a un
botn, podra agregar un controlador pageLoad al elemento body.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Example</title>
<style type="text/css">
.redBackgroundColor {
background-color:Red;
}
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 79 de 98
.blueBackgroundColor {
background-color:Green;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnableScriptGlobalization="true" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server"
ChildrenAsTriggers="False" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" GroupingText="Update
Panel">
<b>DomElement Methods</b>
<br />
<asp:Button ID="Button1" runat="server" Text="Toggle
CssClass" />
<asp:Button ID="Button2" runat="server" Text="Remove
CssClass" />
<p></p>
<b>DomElement Properties</b>
<br />
<asp:Label ID="Label1" runat="server" BackColor="Black"
ForeColor="White" Text="Label1" Width="102px"></asp:Label>
<br />
<asp:Label ID="Label2" runat="server"></asp:Label>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>

<script type="text/javascript">
// Add handler using the getElementById method
$addHandler(Sys.UI.DomElement.getElementById("Button1"), "click",
toggleCssClassMethod);
// Add handler using the shortcut to the getElementById method
$addHandler($get("Button2"), "click", removeCssClassMethod);
// Add CSS class
Sys.UI.DomElement.addCssClass($get("Button1"), "redBackgroundColor");
Sys.UI.DomElement.addCssClass($get("Button2"), "blueBackgroundColor");
// Method called when Button1 is clicked
function toggleCssClassMethod(eventElement) {
// Toggle CSS class
Sys.UI.DomElement.toggleCssClass(eventElement.target,
"redBackgroundColor");
}

// Method called when Button2 is clicked
function removeCssClassMethod(eventElement) {
// Remove CSS class
Sys.UI.DomElement.removeCssClass(eventElement.target,
"blueBackgroundColor");
}

// Get the bounds of the element
var elementRef = $get("Label1");
var elementBounds = Sys.UI.DomElement.getBounds(elementRef);
var result = '';
result += "Label1 bounds x = " + elementBounds.x + "<br/>";
result += "Label1 bounds y = " + elementBounds.y + "<br/>";
result += "Label1 bounds width = " + elementBounds.width + "<br/>";
result += "Label1 bounds height = " + elementBounds.height + "<p/>";
// Get the location of the element
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 80 de 98
var elementLoc = Sys.UI.DomElement.getLocation(elementRef);
result += "Before move - Label1 location (x,y) = (" +
elementLoc.x + "," + elementLoc.y + ")<br/>";
// Move the element
Sys.UI.DomElement.setLocation(elementRef, 100, elementLoc.y);
elementLoc = Sys.UI.DomElement.getLocation(elementRef);
result += "After move - Label1 location (x,y) = (" +
elementLoc.x + "," + elementLoc.y + ")<br/>";
// Prepare the results
$get('Label2').innerHTML = result;
</script>
6.5. Sys.UI.DomEvent (Clase)
Proporciona acceso en varios exploradores a los campos y mtodos que estn asociados a controladores de eventos de
elementos DOM.
Espacio de nombres: Sys.UI
Hereda: nada
var domEvent = Sys.UI.DomEvent(domObject);
Constructores
Name Descripcin
Sys.UI.DomEvent (Constructor) Inicializa una nueva instancia de la clase DomEvent.
Miembros
Name Descripcin
Sys.UI.DomEvent addHandler
(Mtodo)
Proporciona un mtodo para agregar un controlador de eventos
DOM al elemento DOM que expone el evento.
Sys.UI.DomEvent addHandlers
(Mtodo)
Agrega una lista de controladores de eventos DOM al elemento
DOM que expone los eventos DOM.
Sys.UI.DomEvent clearHandlers
(Mtodo)
Quita todos los controladores de eventos DOM del elemento
DOM que se agregaron a travs de los mtodos addHandler o
addHandlers.
Sys.UI.DomEvent preventDefault
(Mtodo)
Impide que se produzca la accin del evento DOM
predeterminada.
Sys.EventHandlerList.removeHandler
(Mtodo)
Proporciona un mtodo para quitar un controlador de eventos
DOM especificado del elemento DOM que expone el evento.
Sys.UI.DomEvent stopPropagation
(Mtodo)
Impide que un evento se propague a los elementos principales.
Sys.UI.DomEvent altKey (Campo) Obtiene un valor que indica el estado de la tecla ALT cuando se
produjo el evento asociado.
Sys.UI.DomEvent button (Campo) Obtiene un valor de enumeracin Sys.UI.MouseButton que
indica el estado del botn del mouse cuando se produjo el evento
asociado.
Sys.UI.DomEvent charCode (Campo) Obtiene el cdigo de carcter de la tecla que provoc el evento
asociado.
Sys.UI.DomEvent clientX (Campo) Obtiene la coordenada x de la posicin del puntero del mouse
respecto al rea de cliente de la ventana del explorador, excluidas
las barras de desplazamiento.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 81 de 98
Sys.UI.DomEvent clientY (Campo) Obtiene la coordenada y de la posicin del puntero del mouse
respecto al rea de cliente de la ventana del explorador, excluidas
las barras de desplazamiento.
Sys.UI.DomEvent ctrlKey (Campo) Obtiene un valor que indica el estado de la tecla CTRL cuando se
produjo el evento asociado.
Sys.UI.DomEvent charCode (Campo) Obtiene el cdigo de la tecla que provoc el evento keyUp o
keyDown.
Sys.UI.DomEvent offsetX (Campo) Obtiene la coordenada x de la posicin del puntero del mouse
respecto al objeto que provoc el evento.
Sys.UI.DomEvent offsetY (Campo) Obtiene la coordenada y de la posicin del puntero del mouse
respecto al objeto que provoc el evento.
Sys.UI.DomEvent screenX (Campo) Obtiene la coordenada x de la posicin del puntero del mouse
respecto a la pantalla del usuario.
Sys.UI.DomEvent screenY (Campo) Obtiene la coordenada y de la posicin del puntero del mouse
respecto a la pantalla del usuario.
Sys.UI.DomEvent shiftKey (Campo) Obtiene un valor que indica el estado de la tecla MAYS cuando
se produjo el evento asociado.
Sys.UI.DomEvent target (Campo) Obtiene el objeto sobre el que actu el evento.
Sys.UI.DomEvent type (Campo) Obtiene el nombre del evento que se provoc.
Comentarios
Utilice la clase DomEvent para agregar, quitar, modificar y controlar eventos de cliente. Puede utilizar tambin esta clase
para recuperar las propiedades asociadas a un evento.
Ejemplo
En el ejemplo siguiente se muestra cmo agregar un controlador de eventos y recuperar los valores de campo
relacionados con el evento.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Example</title>
<style type="text/css">
#UpdatePanel1 {
width:300px; height:100px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"
ChildrenAsTriggers="False" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server"
GroupingText="Update Panel">
<asp:Label ID="Label1" runat="server"
Text="Click button to see event details."></asp:Label>
<br />
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 82 de 98
<asp:Button ID="Button1" runat="server" Text="Button"
AccessKey="b" />
<br />
<asp:Label ID="Label2" runat="server"></asp:Label>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>

<script type="text/javascript">
Sys.UI.DomEvent.addHandler($get("Button1"), "click", processEventInfo);
var myArray = ['altKey', 'button', 'charCode', 'clientX', 'clientY',
'ctrlKey', 'offsetX', 'offsetY', 'screenX', 'screenY',
'shiftKey', 'target', 'type'];

function processEventInfo(eventElement) {
var result = '';
for (var i = 0, l = myArray.length; i < l; i++) {
var arrayVal = myArray[i];
if (typeof(arrayVal) !== 'undefined') {
// Example: eventElement.clientX
result += arrayVal + " = " + eval("eventElement." + arrayVal)
+ '<br/>';
}
}
$get('Label2').innerHTML = result;
}
</script>
6.6. Sys.UI.Key (Enumeracin)
Describe los cdigos de tecla.
Espacio de nombres: Sys.UI
Hereda: nada
var a = Sys.UI.Key.backspace;
Miembros
Nombre del miembro Descripcin
backspace Representa la tecla RETROCESO.
tab Representa la tecla TAB.
enter Representa la tecla ENTRAR.
esc Representa la tecla ESC.
space Representa la tecla BARRA ESPACIADORA.
pageUp Representa la tecla RE PG.
pageDown Representa la tecla AV PG.
end Representa la tecla FIN.
home Representa la tecla INICIO.
left Representa la tecla de direccin IZQUIERDA.
up Representa la tecla de direccin ARRIBA.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 83 de 98
right Representa la tecla de direccin DERECHA.
down Representa la tecla de direccin ABAJO.
del Representa la tecla SUPR.
Comentarios
Los valores corresponden a los valores del Modelo de objetos de documento (DOM).
6.7. Sys.UI.MouseButton (Enumeracin)
Describe las ubicaciones del botn del mouse.
Espacio de nombres: Sys.UI
Hereda: nada
var a = Sys.UI.MouseButton.leftButton;
Miembros
Nombre del miembro Descripcin
leftButton Representa el botn primario del mouse.
middleButton Representa el botn de rueda (botn central del mouse).
rightButton Representa el botn secundario del mouse.
Comentarios
Los valores corresponden a los valores del Modelo de objetos de documento (DOM).
6.8. Sys.UI.Point (Clase)
Crea un objeto que contiene un conjunto de coordenadas enteras que representan una posicin.
Espacio de nombres: Sys.UI
Hereda: nada
var objectPointVar = new Sys.UI.Point(x, y);
Constructores
Name Descripcin
Sys.UI.Point (Constructor) Inicializa una nueva instancia de la clase Point.
Miembros
Name Descripcin
Sys.UI.Point x
(Propiedad)
Obtiene la coordenada x del objeto Point en pxeles. Esta propiedad es de slo lectura.
Sys.UI.Point y
(Propiedad)
Obtiene la coordenada y del objeto Point en pxeles. Esta propiedad es de slo lectura.
Comentarios
El mtodo getLocation de la clase Sys.UI.DomElement devuelve un objeto Point.
Ejemplo
En el siguiente ejemplo de cdigo, se muestra cmo utilizar la clase Point.
// Get the location of the element
var elementLoc = Sys.UI.DomElement.getLocation(elementRef);
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 84 de 98
result += "Before move - Label1 location (x,y) = (" +
elementLoc.x + "," + elementLoc.y + ")<br/>";
// Move the element
Sys.UI.DomElement.setLocation(elementRef, 100, elementLoc.y);
elementLoc = Sys.UI.DomElement.getLocation(elementRef);
result += "After move - Label1 location (x,y) = (" +
elementLoc.x + "," + elementLoc.y + ")<br/>";
6.9. Sys.UI.VisibilityMode (Enumeracin)
Describe la disposicin de un elemento DOM en la pgina cuando la propiedad visible del elemento est establecida
en false.
Espacio de nombres: Sys.UI
Hereda: nada
var a = Sys.UI.VisibilityMode.hide;
var b = Sys.UI.VisibilityMode.collapse;
Miembros
Nombre del miembro Descripcin
hide El elemento no est visible pero ocupa espacio en la pgina.
collapse El elemento no est visible y el espacio que ocupa est contrado.
7. Sys.WebForms (Espacio de nombres)
El espacio de nombres Sys.WebForms contiene clases relacionadas con la representacin parcial de pginas en
Microsoft Ajax Library.
Tipos
Nombre Descripcin
Sys.WebForms.BeginRequestEventArgs
(Clase)
Utilizada por el evento beginRequest de la clase
PageRequestManager para pasar informacin de
argumentos a los controladores de eventos.
Sys.WebForms.EndRequestEventArgs
(Clase)
Utilizada por el evento endRequest de la clase
PageRequestManager para pasar informacin de
argumentos a los controladores de eventos.
Sys.WebForms.InitializeRequestEventArgs
(Clase)
Utilizada por el evento initializeRequest de la clase
PageRequestManager para pasar informacin de
argumentos a los controladores de eventos.
Sys.WebForms.PageLoadedEventArgs
(Clase)
Utilizada por el evento pageLoaded de la clase
PageRequestManager para enviar datos de evento que
representan los controles de UpdatePanel que se actualizaron
y crearon en la ltima devolucin de datos.
Sys.WebForms.PageLoadingEventArgs
(Clase)
Utilizada por el evento pageLoading de la clase
PageRequestManager para enviar datos de evento que
representan los controles de UpdatePanel que se van a
actualizar y eliminar como resultado de la ltima devolucin
de datos.
Sys.WebForms.PageRequestManager
(Clase)
Administra las actualizaciones parciales de pginas cliente
de los controles UpdatePanel del servidor. Adems, define
las propiedades, eventos y mtodos que se pueden utilizar
para personalizar una pgina web con script de cliente.
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 85 de 98
Excepciones de Sys.WebForms Define las excepciones que se pueden producir durante las
actualizaciones parciales de pgina.
7.1. Sys.WebForms.BeginRequestEventArgs (Clase)
Utilizada por el evento beginRequest de la clase Sys.WebForms.PageRequestManager para pasar informacin de
argumentos a los controladores de eventos. El evento beginRequest se provoca inmediatamente antes de que se cree
la solicitud de devolucin de datos.
Espacio de nombres: Sys.WebForms
Hereda: Sys.EventArgs
var args = new Sys.WebForms.BeginRequestEventArgs(request, postBackElement,
updatePanelsToUpdate);
Constructores
Name Descripcin
Sys.WebForms.BeginRequestEventArgs
(Constructor)
Inicializa una nueva instancia de la
clase BeginRequestEventArgs.
Miembros
Name Descripcin
Sys.WebForms.BeginRequestEventArgs.
postBackElement (Propiedad)
Obtiene el elemento de devolucin que inici la
devolucin asincrnica.
Sys.WebForms.BeginRequestEventArgs.request
(Propiedad)
Obtiene el objeto de solicitud que representa la
devolucin actual.
Sys.WebForms.BeginRequestEventArgs.
updatePanelsToUpdate (Propiedad)
Obtiene una lista de valores UniqueID para los
controles UpdatePanel que deberan representar de
nuevo su contenido, tal y como solicita el cliente.
Nota
Esta clase contiene miembros privados que admiten la infraestructura de script de cliente y no est prevista su
utilizacin directa desde el cdigo. Los nombres de los miembros privados comienzan con un carcter de
subrayado (_).
Comentarios
Los controladores de eventos pueden utilizar la propiedad request para tener acceso al objeto de solicitud, y la
propiedad postBackElement para determinar el elemento que produjo la devolucin de datos.
Ejemplo
En el ejemplo siguiente se muestra cmo usar la clase BeginRequestEventArgs. Dos botones realizan las devoluciones
de datos asincrnicas. En el controlador de eventos beginRequest, se utiliza la propiedad postBackElement para tener
acceso al nombre del elemento que produjo la devolucin de datos.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void ProcessClick_Handler(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(2000);
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager beginRequest Example</title>
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 86 de 98
<style type="text/css">
body {
font-family: Tahoma;
}
div.AlertStyle
{
background-color: #FFC080;
top: 95%;
left: 1%;
height: 20px;
width: 270px;
position: absolute;
visibility: hidden;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().
add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().
add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
var elem = args.get_postBackElement();
ActivateAlertDiv('visible', 'AlertDiv', elem.value +
'processing...');
}
function EndRequestHandler(sender, args)
{
ActivateAlertDiv('hidden', 'AlertDiv', '');
}
function ActivateAlertDiv(visstring, elem, msg)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
adiv.innerHTML = msg;
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional"
runat="Server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server"
GroupingText="Update Panel">
Last update:
<%= DateTime.Now.ToString()%>.
<br />
<asp:Button runat="server" ID="Button1"
Text="Process 1" OnClick="ProcessClick_Handler" />
<asp:Button runat="server" ID="Button2"
Text="Process 2" OnClick="ProcessClick_Handler" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div id="AlertDiv" class="AlertStyle">
</div>
</div>
</form>
</body>
</html>
7.2. Sys.WebForms.EndRequestEventArgs (Clase)
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 87 de 98
Utilizada por el evento endRequest de la clase Sys.WebForms.PageRequestManager para pasar informacin de
argumentos a los controladores de eventos. El evento endRequest se provoca inmediatamente despus de que termina
de procesarse la solicitud de devolucin de datos.
Espacio de nombres: Sys.WebForms
Hereda: Sys.EventArgs
var args = new Sys.WebForms.EndRequestEventArgs(error, dataItems, response);
Constructores
Name Descripcin
Sys.WebForms.EndRequestEventArgs
(Constructor)
Inicializa una nueva instancia de la clase EndRequestEventArgs.
Miembros
Nombre del miembro Descripcin
Sys.WebForms.EndRequestEventArgs
dataItems (Propiedad)
Obtiene una estructura de datos JSON que contiene los
elementos de datos registrados mediante el mtodo
RegisterDataItem de la clase ScriptManager.
Sys.WebForms.EndRequestEventArgs error
(Propiedad)
Obtiene el objeto Error.
Sys.WebForms.EndRequestEventArgs
errorHandled (Propiedad)
Obtiene o establece un valor que indica si el error se ha
controlado.
Sys.WebForms.EndRequestEventArgs
response (Propiedad)
Obtiene un objeto de respuesta que es representado por la
clase WebRequestExecutor.
Nota
Esta clase contiene miembros privados que admiten la infraestructura de script de cliente y no est prevista su
utilizacin directa desde el cdigo. Los nombres de los miembros privados comienzan con un carcter de
subrayado (_).
Comentarios
Se devuelve un objeto EndRequestEventArgs como un parmetro en un controlador de eventos. Puede utilizar su
propiedad error para determinar si se produjo un error y para obtener los detalles sobre el error. Puede utilizar tambin
la propiedad errorHandled para determinar si ya se ha controlado el error y para indicar que ha controlado el error.
Ejemplo
En el ejemplo siguiente se muestra cmo se utilizan las dos propiedades de la clase EndRequestEventArgs. Un
controlador de eventos Click de un botn en un control UpdatePanel produce una excepcin ArgumentException para
simular una excepcin no controlada. En el script de cliente, un controlador del eventoendRequest de la
clase PageRequestManager comprueba el valor de la propiedad error. Si el error es una excepcin de servidor no
controlada, el script establece la propiedad errorHandled en true y muestra un mensaje de error.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void ErrorProcessClick_Handler(object sender, EventArgs e)
{
// This handler demonstrates an error condition. In this example
// the server error gets intercepted on the client and an alert is
// shown.
throw new ArgumentException();
}
protected void SuccessProcessClick_Handler(object sender, EventArgs e)
{
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 88 de 98
// This handler demonstrates no server side exception.
UpdatePanelMessage.Text = "The asynchronous postback completed
successfully.";
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>PageRequestManager endRequestEventArgs Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
div.AlertStyle{
position: absolute; width: 90%; top: 0%;
visibility: hidden; z-index: 99; background-color: #ffff99;
font-size: larger; font-family: Tahoma;
border-right: navy thin solid; border-top: navy thin solid;
border-left: navy thin solid; border-bottom: navy thin solid;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest
(EndRequestHandler);
var divElem = 'AlertDiv';
var messageElem = 'UpdatePanelMessage';
function ToggleAlertDiv(visString)
{
var adiv = $get(divElem);
adiv.style.visibility = visString;
}
function ClearErrorState() {
$get(messageElem).innerHTML = '';
ToggleAlertDiv('hidden');
}
function EndRequestHandler(sender, args)
{
if (args.get_error() != null)
{
var errorName = args.get_error().name;
if (errorName.length > 0 )
{
args.set_errorHandled(true);
ToggleAlertDiv('visible');
$get(messageElem).innerHTML = 'The panel did not
update successfully.';
}
}
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional"
runat="Server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server"
GroupingText="Update Panel">
<asp:Label ID="UpdatePanelMessage" runat="server" />
<br />
Last update:
<%= DateTime.Now.ToString() %>
.
<br />
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 89 de 98
<asp:Button runat="server" ID="Button1"
Text="Submit Successful Async Postback"
OnClick="SuccessProcessClick_Handler"
OnClientClick="ClearErrorState()" />
<asp:Button runat="server" ID="Button2"
Text="Submit Async Postback With Error"
OnClick="ErrorProcessClick_Handler"
OnClientClick="ClearErrorState()" />
<br />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div id="AlertDiv" class="AlertStyle" style="">
<div id="AlertMessage" style="float: left">
There was a problem processing the last request.
</div>
<div id="AlertLinks" style="float: right">
<a title="Hide this alert." href="#"
onclick="ClearErrorState()">
close</a> | <a title="Send an email notifying the Web
site owner." href="mailto:someone@example.com"
onclick="ToggleAlertDiv('hidden', 'AlertDiv')">
notify</a></div>
</div>
</div>
</form>
</body>
</html>
7.3. Sys.WebForms.InitializeRequestEventArgs (Clase)
Proporciona una clase que utiliza el evento initializeRequest de la clase Sys.WebForms.PageRequestManager para pasar
informacin de argumentos a los controladores de eventos.
Espacio de nombres: Sys.WebForms
Hereda: Sys.CancelEventArgs
var args = new Sys.WebForms.InitializeRequestEventArgs(request,
postBackElement, updatePanelsToUpdate);
Constructores
Name Descripcin
Sys.WebForms.InitializeRequestEventArgs
(Constructor)
Inicializa una nueva instancia de la clase InitializeRequest
EventArgs.
Miembros
Name Descripcin
Sys.WebForms.InitializeRequestEventArgs
postBackElement (Propiedad)
Obtiene el elemento de devolucin que inici la devolucin
asincrnica.
Sys.WebForms.InitializeRequestEventArgs
request (Propiedad)
Obtiene el objeto de solicitud que representa la devolucin
actual.
Sys.WebForms.InitializeRequestEventArgs.
updatePanelsToUpdate (Propiedad)
Obtiene o establece una lista de valores UniqueID para los
controles UpdatePanel que deberan representar de nuevo su
contenido, tal y como solicita el cliente.
Nota
Esta clase contiene miembros privados que admiten la infraestructura de script de cliente y no est prevista su
utilizacin directa desde el cdigo. Los nombres de los miembros privados comienzan con un carcter de
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 90 de 98
subrayado (_).
Comentarios
Los controladores de eventos pueden utilizar la propiedad request para tener acceso al objeto de solicitud y usar la
propiedad postBackElement para determinar el elemento que ocasion el postback.
El evento initializeRequest de la clase PageRequestManager se provoca antes de que se inicie el procesamiento de la
solicitud asincrnica.
Ejemplo
En el ejemplo siguiente se muestra cmo utilizar el evento initializeRequest para permitir que se cancele un postback
asincrnico. El script del controlador de eventos initializeRequest determina si una devolucin de datos asincrnica
est actualmente en curso mediante la propiedad isInAsyncPostBack de la clasePageRequestManager. Si una
devolucin de datos est en curso, se utiliza la propiedad postBackElement para determinar el identificador del
elemento que produjo la devolucin de datos. Si el identificador coincide con el identificador de un botn que cancela
la devolucin de datos, se llama al mtodo abortPostBack de la clase PageRequestManager. De lo contrario, la solicitud
actual se cancela mediante la propiedad cancel de la clase CancelEventArgs.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void ButtonClick_Handler(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager initializeRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
div.UpdatePanelStyle{
width: 300px;
height: 300px;
}
div.AlertStyle {
font-size: smaller;
background-color: #FFC080;
height: 20px;
visibility: hidden;
}
div.Container {
display: inline;
float: left;
width: 330px;
height: 300px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript" language="javascript">
var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 91 de 98
Sys.WebForms.PageRequestManager.getInstance().
add_initializeRequest(CheckStatus);
function CheckStatus(sender, args)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm.get_isInAsyncPostBack() &
args.get_postBackElement().id == 'CancelRefresh') {
prm.abortPostBack();
}
else if (prm.get_isInAsyncPostBack() &
args.get_postBackElement().id == 'RefreshButton') {
args.set_cancel(true);
ActivateAlertDiv('visible', 'Still working on previous
request.');
}
else if (!prm.get_isInAsyncPostBack() &
args.get_postBackElement().id == 'RefreshButton') {
ActivateAlertDiv('visible', 'Processing....');
}
}
function ActivateAlertDiv(visString, msg)
{
var adiv = $get(divElem);
var aspan = $get(messageElem);
adiv.style.visibility = visString;
aspan.innerHTML = msg;
}
</script>
<div class="Container" >
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional"
runat="Server" >
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server"
GroupingText="UpdatePanel"
CssClass="UpdatePanelStyle">
Last update:
<%=DateTime.Now.ToString() %>.
<asp:Button runat="server" ID="RefreshButton"
Text="Refresh"
OnClick="ButtonClick_Handler" />
<div id="AlertDiv" class="AlertStyle">
<span id="AlertMessage"></span>
&nbsp;&nbsp;&nbsp;&nbsp;
<asp:LinkButton ID="CancelRefresh"
runat="server">cancel</asp:LinkButton>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</form>
</body>
</html>
7.4. Sys.WebForms.PageLoadedEventArgs (Clase)
Utilizada por el evento pageLoaded de la clase Sys.WebForms.PageRequestManager para enviar datos de eventos que
representan los controles de UpdatePanel que se actualizaron y crearon en la ltima devolucin de datos.
Espacio de nombres: Sys.WebForms
Hereda: Sys.EventArgs
var args = new Sys.WebForms.PageLoadedEventArgs();
Constructores
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 92 de 98
Name Descripcin
Sys.WebForms.PageLoadedEventArgs
(Constructor)
Inicializa una nueva instancia de la clase PageLoadedEventArgs.
Miembros
Name Descripcin
Sys.WebForms.PageLoadedEventArgs
dataItems (Propiedad)
Obtiene una estructura de datos JSON que contiene los
elementos de datos registrados mediante el mtodo
RegisterDataItem de la clase ScriptManager.
Sys.WebForms.PageLoadedEventArgs
panelsCreated (Propiedad)
Obtiene una matriz de elementos HTML <div> que
representan los controles UpdatePanel creados cuando DOM
se actualiz durante la ltima devolucin asincrnica.
Sys.WebForms.PageLoadedEventArgs
panelsUpdated (Propiedad)
Obtiene una matriz de elementos HTML <div> que
representan los controles UpdatePanel actualizados cuando
DOM se actualiz durante la ltima devolucin.
Nota
Esta clase contiene miembros privados que admiten la infraestructura de script de cliente y no est prevista su
utilizacin directa desde el cdigo. Los nombres de los miembros privados comienzan con un carcter de
subrayado (_).
Comentarios
El control UpdatePanel representa elementos <div> HTML. El evento pageLoaded contiene informacin sobre los
elementos <div> de la pgina que se actualizaron y crearon. La propiedad panelsCreated es una matriz de elementos
de panel que se crearon como resultado de la devolucin de datos asincrnica actual. La propiedad panelsUpdated es
una matriz de paneles que se actualizaron como resultado de la devolucin de datos asincrnica actual.
Ejemplo
En el ejemplo siguiente se muestra cmo utilizar el evento pageLoaded para proporcionar un script que anima una
regin de la pgina durante una actualizacin parcial de pgina. Los datos de eventos (args) son un objeto
PageLoadedEventArgs.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void LinkButton_Click(object sender, EventArgs e)
{
TextBox1.Text = DateTime.Now.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager pageLoaded Event Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
.FieldSetStyle
{
width: 300px;
height: 100px;
}
.UpdatePanelContainer
{
width: 330px;
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 93 de 98
height:110px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript">
Type.registerNamespace("ScriptLibrary");
ScriptLibrary.BorderAnimation = function(color, duration) {
this._color = color;
this._duration = duration;
}
ScriptLibrary.BorderAnimation.prototype = {
animatePanel: function(panelElement) {
var s = panelElement.style;
s.borderWidth = '1px';
s.borderColor = this._color;
s.borderStyle = 'solid';
window.setTimeout(
function() {{ s.borderWidth = 0; }},
this._duration
);
}
}
ScriptLibrary.BorderAnimation.registerClass
('ScriptLibrary.BorderAnimation', null);
var panelUpdatedAnimation = new ScriptLibrary.BorderAnimation('blue',
1000);
var postbackElement;
Sys.WebForms.PageRequestManager.getInstance().
add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().
add_pageLoaded(pageLoaded);
function beginRequest(sender, args) {
postbackElement = args.get_postBackElement();
}
function pageLoaded(sender, args) {
var updatedPanels = args.get_panelsUpdated();
if (typeof(postbackElement) === "undefined") {
return;
}
else if (postbackElement.id.toLowerCase().indexOf('external') >
-1) {
for (i=0; i < updatedPanels.length; i++) {
panelUpdatedAnimation.animatePanel(updatedPanels[i]);
}
}
}
</script>
<p>
<asp:LinkButton ID="ExternalButton" runat="server"
OnClick="LinkButton_Click">
Update the panel with animation.
</asp:LinkButton>
</p>
<hr />
<div class="UpdatePanelContainer">
<asp:UpdatePanel runat="server" ID="UpdatePanel1"
UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ExternalButton" />
</Triggers>
<ContentTemplate>
<fieldset id="FieldSet1" class="FieldSetStyle"
runat="server">
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 94 de 98
<legend>UpdatePanel</legend>
<asp:TextBox runat="server" ID="TextBox1" />
<br />
<asp:LinkButton ID="InternalButton" runat="server"
OnClick="LinkButton_Click">
Update the panel with no animation.
</asp:LinkButton>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
7.5. Sys.WebForms.PageLoadingEventArgs (Clase)
Utilizada por el evento pageLoading de la clase Sys.WebForms.PageRequestManager para enviar datos de evento que
representan los controles de UpdatePanel que se van a actualizar y eliminar como resultado de la ltima devolucin de
datos.
Espacio de nombres: Sys.WebForms
Hereda: Sys.EventArgs
var args = new Sys.WebForms.PageLoadingEventArgs();
Constructores
Name Descripcin
Sys.WebForms.PageLoadingEventArgs
(Constructor)
Inicializa una nueva instancia de la clase PageLoadingEvent
Args.
Miembros
Name Descripcin
Sys.WebForms.PageLoadingEventArgs
dataItems (Propiedad)
Obtiene una estructura de datos JSON que contiene los
elementos de datos registrados mediante el mtodo
RegisterDataItem de la clase ScriptManager.
Sys.WebForms.PageLoadingEventArgs
panelsDeleting (Propiedad)
Obtiene una matriz de elementos HTML <div> que representan
los controles UpdatePanel que se van a eliminar de DOM como
resultado de la devolucin asincrnica actual.
Sys.WebForms.PageLoadingEventArgs
panelsUpdating (Propiedad)
Obtiene una matriz de elementos HTML <div> que representan
los controles UpdatePanel que se van a actualizar en DOM como
resultado de la devolucin asincrnica actual.
Nota
Esta clase contiene miembros privados que admiten la infraestructura de script de cliente y no est prevista su
utilizacin directa desde el cdigo. Los nombres de los miembros privados comienzan con un carcter de
subrayado (_).
Comentarios
El control UpdatePanel representa elementos <div>. Despus de una devolucin de datos, el evento pageLoading
contiene informacin sobre los elementos<div> de la pgina que se actualizaron y crearon. La
propiedad panelsDeleting es una matriz de elementos <div> que se van a eliminar. La propiedad panelsUpdating es
una matriz de elementos <div> que se van a actualizar.
7.6. Sys.WebForms.PageRequestManager (Clase)
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 95 de 98
Administra actualizaciones parciales de pgina de controles UpdatePanel de servidor en el explorador, y define las
propiedades, eventos y mtodos que se pueden utilizar para personalizar una pgina web utilizando script de cliente.
Espacio de nombres: Sys.WebForms
Hereda: nada
var prm = Sys.WebForms.PageRequestManager.getInstance();
Constructor
No debe crear directamente una nueva instancia de la clase PageRequestManager. En su lugar, existe una instancia
disponible cuando la representacin de pgina parcial est habilitada. Llame al mtodo getInstance para obtener la
instancia de la clase PageRequestManager.
Miembros
Name Descripcin
Sys.WebForms.PageRequestManager (Constructor) Inicializa una nueva instancia de Sys.WebForms.
PageRequestManager (Clase).
Sys.WebForms.PageRequestManager beginRequest
(Evento)
Se genera antes de que empiece el procesamiento de
un postback asincrnico y se enve la solicitud de
postback al servidor.
Sys.WebForms.PageRequestManager endRequest
(Evento)
Se provoca despus de que finalice una devolucin
de datos asincrnica y se haya devuelto el control al
explorador.
Sys.WebForms.PageRequestManager
initializeRequest (Evento)
Se provoca durante la inicializacin de la devolucin
de datos asincrnica.
Sys.WebForms.PageRequestManager pageLoaded
(Evento)
Se provoca una vez actualizado todo el contenido de
la pgina como consecuencia de una devolucin de
datos sincrnica o asincrnica.
Sys.WebForms.PageRequestManager pageLoading
(Evento)
Se provoca despus de recibir la respuesta del
servidor a una devolucin asincrnica, pero antes de
actualizar cualquier contenido en la pgina.
Sys.WebForms.PageRequestManager.abortPostBack
(Mtodo)
Detiene todas las actualizaciones que se producen
como resultado de una devolucin de datos
asincrnica.
Sys.WebForms.PageRequestManager.
beginAsyncPostBack (Mtodo)
Comienza un postback asincrnico.
Sys.WebForms.PageRequestManager dispose
(Mtodo)
Libera todos los recursos de ECMAScript
(JavaScript) y desasocia los eventos.
Sys.WebForms.PageRequestManager getInstance
(Mtodo)
Devuelve la instancia de la clase PageRequest
Manager para la pgina.
Sys.WebForms.PageRequestManager
isInAsyncPostBack (Propiedad)
Devuelve un valor que indica si el objeto Page
RequestManager est procesando una devolucin
de datos.
Nota
Esta clase contiene miembros privados que admiten la infraestructura de script de cliente y no est prevista su
utilizacin directa desde el cdigo. Los nombres de los miembros privados comienzan con un carcter de
subrayado (_).
Comentarios
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 96 de 98
La clase PageRequestManager administra la representacin parcial de pginas en el explorador. Puede actualizar las
regiones de la pgina utilizando uno o varios controles UpdatePanel y un control ScriptManager.
No debe crear directamente una instancia de PageRequestManager. Cuando la representacin parcial de pginas est
habilitada, una instancia de la clasePageRequestManager est disponible automticamente. Puede tener acceso a ella a
travs del mtodo getInstance.
La clase PageRequestManager define eventos que puede utilizar para personalizar la representacin parcial de su
pgina. La infraestructura del cliente permite enlazar automticamente eventos de una forma similar al modo en que los
eventos de pgina del servidor se enlazan automticamente a mtodos comoPage_Load. En la tabla siguiente se
incluyen los eventos de cliente que puede utilizar y los escenarios en los que podra controlarlos. Los eventos se
muestran en la tabla en el orden en que la clase PageRequestManager los llama.
Evento
PageRequestManager
Descripcin
initializeRequest Se provoca antes de que se inicie el procesamiento de la solicitud
asincrnica. Puede utilizar este evento para cancelar una devolucin de datos.
beginRequest Se provoca antes de que empiece el procesamiento de una devolucin de datos
asincrnica y se enve la devolucin de datos al servidor. Puede utilizar este
evento para establecer los encabezados de la solicitud o para iniciar una
animacin que indique que la pgina se est procesando.
pageLoading Se provoca despus de recibir la respuesta del servidor a una devolucin
asincrnica, pero antes de actualizar cualquier contenido en la pgina. Puede
utilizar este evento para proporcionar un efecto de transicin personalizado para
el contenido actualizado.
pageLoaded Se provoca una vez actualizado todo el contenido de la pgina, como resultado
de una devolucin de datos sincrnica o asincrnica. Puede utilizar este evento
para proporcionar un efecto de transicin personalizado para el contenido
actualizado.
endRequest Se provoca despus de que finalice una devolucin de datos asincrnica y se
haya devuelto el control al explorador. Puede utilizar este evento para
proporcionar una notificacin a los usuarios o para registrar los errores.
Si la pgina contiene al menos un control UpdatePanel y el valor SupportsPartialRendering del control ScriptManager es
true (valor predeterminado), la biblioteca de JavaScript que define la clase PageRequestManager se registra con el
control ScriptManager y est disponible en la pgina.
Ejemplo
En el ejemplo siguiente se muestra cmo utilizar el evento beginRequest para mostrar una notificacin de progreso
durante las devoluciones de datos asincrnicas. Se llama al mtodo getInstance para obtener la instancia
de PageRequestManager actual. Se incluye script en los controladores para los eventosendRequest y beginRequest.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void ProcessClick_Handler(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(2000);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager beginRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
div.AlertStyle
{
background-color: #FFC080;
top: 95%;
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 97 de 98
left: 1%;
height: 20px;
width: 270px;
position: absolute;
visibility: hidden;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().
add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().
add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
var elem = args.get_postBackElement();
ActivateAlertDiv('visible', 'AlertDiv', elem.value +
' processing...');
}
function EndRequestHandler(sender, args)
{
ActivateAlertDiv('hidden', 'AlertDiv', '');
}
function ActivateAlertDiv(visstring, elem, msg)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
adiv.innerHTML = msg;
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional"
runat="Server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server"
GroupingText="Update Panel">
Last update:
<%= DateTime.Now.ToString()%>.
<br />
<asp:Button runat="server" ID="Button1"
Text="Process 1" OnClick="ProcessClick_Handler" />
<asp:Button runat="server" ID="Button2"
Text="Process 2" OnClick="ProcessClick_Handler" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div id="AlertDiv" class="AlertStyle">
</div>
</div>
</form>
</body>
</html>
7.7. Excepciones de Sys.WebForms
Define las excepciones que se pueden producir durante las actualizaciones parciales de pgina. Estas excepciones se
crean dinmicamente mediante la funcin Error.create, y no se pueden crear instancias de ellas ni invocarse.
Espacio de nombres: Sys.WebForms
Hereda: nada
Excepciones
Referencia de Cliente de Microsoft AJAX Library
MCT: Luis Dueas Pag. 98 de 98
Name Descripcin
Sys.WebForms.PageRequestManagerParserErrorException Se produce cuando aparece un error al
procesar la respuesta del servidor.
Sys.WebForms.PageRequestManagerServerErrorException Se produce cuando hay un error en el
servidor.
Sys.WebForms.PageRequestManagerTimeoutException Se produce cuando se agota el tiempo de
espera de la solicitud.
Comentarios
Una solicitud de cliente (una devolucin de datos asincrnica) inicia una actualizacin parcial de pgina en el servidor. El
servidor procesa la solicitud y devuelve una respuesta al cliente.
Si el explorador no recibe una respuesta en un tiempo especificado, se produce Sys.WebForms.PageRequest
ManagerTimeoutException. Para cambiar el intervalo que transcurre antes de que se agote el tiempo de espera de las
devoluciones de datos asincrnicas, establezca la propiedad AsyncPostBackTimeout del control ScriptManager.
Si se produce un error en el servidor mientras se procesa la solicitud, se devuelve una respuesta de error al explorador y
se produce la excepcin Sys.WebForms.PageRequestManagerServerErrorException. Para personalizar el control de
errores y mostrar ms informacin sobre el error del servidor, controle el evento AsyncPostBackError y utilice las
propiedades AsyncPostBackErrorMessage y AllowCustomErrorsRedirect. Para obtener un ejemplo de cmo proporcionar
un control de errores personalizado durante las actualizaciones parciales de pgina, vea Personalizar el control de
errores para los controles UpdatePanel de ASP .NET.
Si se devuelve la respuesta a una devolucin de datos asincrnica sin error, pero hay un error al procesar la respuesta en
el cliente, se produce Sys.WebForms.PageRequestManagerParserErrorException.