Está en la página 1de 98

Referencia de

Cliente de
Microsoft AJAX
Library

Referencia de Cliente de Microsoft AJAX Library

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)

MCT: Luis Dueas

Pag. 2 de 98

Referencia de Cliente de Microsoft AJAX Library

4.
5.

6.

7.

3.6. Sys.Net.WebServiceError (Clase)


3.7. Sys.Net.WebServiceProxy (Clase)
3.8. Sys.Net.XMLHttpExecutor (Clase)
Sys.Serialization (Espacio de nombres)
4.1. Sys.Serialization.JavaScriptSerializer (Clase)
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)
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)
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

MCT: Luis Dueas

Pag. 3 de 98

Referencia de Cliente de Microsoft AJAX Library

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


JavaScript Object base.

Extensiones de
tipo de cadena

Proporciona extensiones a la funcionalidad JavaScript String bsica con mtodos


estticos y de instancia.

MCT: Luis Dueas

extendida similar a la reflexin

al

objeto

Pag. 4 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 5 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 6 de 98

Referencia de Cliente de Microsoft AJAX Library


<!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.

MCT: Luis Dueas

Pag. 7 de 98

Referencia de Cliente de Microsoft AJAX Library

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");

MCT: Luis Dueas

Pag. 8 de 98

Referencia de Cliente de Microsoft AJAX Library


}

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.

MCT: Luis Dueas

Pag. 9 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 10 de 98

Referencia de Cliente de Microsoft AJAX Library


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

MCT: Luis Dueas

Pag. 11 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 12 de 98

Referencia de Cliente de Microsoft AJAX Library

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;

MCT: Luis Dueas

Pag. 13 de 98

Referencia de Cliente de Microsoft AJAX Library


// 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;

MCT: Luis Dueas

Pag. 14 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 15 de 98

Referencia de Cliente de Microsoft AJAX Library

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."

MCT: Luis Dueas

Pag. 16 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 17 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 18 de 98

Referencia de Cliente de Microsoft AJAX Library


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);

MCT: Luis Dueas

Pag. 19 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 20 de 98

Referencia de Cliente de Microsoft AJAX Library

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

MCT: Luis Dueas

Pag. 21 de 98

Referencia de Cliente de Microsoft AJAX Library

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

MCT: Luis Dueas

Pag. 22 de 98

Referencia de Cliente de Microsoft AJAX Library

(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
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.

Sys.INotifyPropertyChange.property

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

MCT: Luis Dueas

Pag. 23 de 98

Referencia de Cliente de Microsoft AJAX Library


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

MCT: Luis Dueas

Pag. 24 de 98

Referencia de Cliente de Microsoft AJAX Library

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);
}

MCT: Luis Dueas

Pag. 25 de 98

Referencia de Cliente de Microsoft AJAX Library


</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;
}

MCT: Luis Dueas

Pag. 26 de 98

Referencia de Cliente de Microsoft AJAX Library


</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);

MCT: Luis Dueas

Pag. 27 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 28 de 98

Referencia de Cliente de Microsoft AJAX Library

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
var
var
var

currentCultureInfoObj = Sys.CultureInfo.CurrentCulture;
dtfCCObject = currentCultureInfoObj.dateTimeFormat;
invariantCultureInfoObj = Sys.CultureInfo.InvariantCulture;
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.

MCT: Luis Dueas

Pag. 29 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 30 de 98

Referencia de Cliente de Microsoft AJAX Library


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)


MCT: Luis Dueas

Pag. 31 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 32 de 98

Referencia de Cliente de Microsoft AJAX Library


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>

MCT: Luis Dueas

Pag. 33 de 98

Referencia de Cliente de Microsoft AJAX Library


<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

MCT: Luis Dueas

Pag. 34 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 35 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 36 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 37 de 98

Referencia de Cliente de Microsoft AJAX Library

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"

MCT: Luis Dueas

Pag. 38 de 98

Referencia de Cliente de Microsoft AJAX Library


>
<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".

MCT: Luis Dueas

Pag. 39 de 98

Referencia de Cliente de Microsoft AJAX Library

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".

MCT: Luis Dueas

Pag. 40 de 98

Referencia de Cliente de Microsoft AJAX Library

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>";

MCT: Luis Dueas

Pag. 41 de 98

Referencia de Cliente de Microsoft AJAX Library

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

MCT: Luis Dueas

Pag. 42 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 43 de 98

Referencia de Cliente de Microsoft AJAX Library

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>

MCT: Luis Dueas

Pag. 44 de 98

Referencia de Cliente de Microsoft AJAX Library


<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);

MCT: Luis Dueas

Pag. 45 de 98

Referencia de Cliente de Microsoft AJAX Library

// 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

MCT: Luis Dueas

Pag. 46 de 98

Referencia de Cliente de Microsoft AJAX Library


{
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.

MCT: Luis Dueas

Pag. 47 de 98

Referencia de Cliente de Microsoft AJAX Library

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

MCT: Luis Dueas

Pag. 48 de 98

Referencia de Cliente de Microsoft AJAX Library


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>

MCT: Luis Dueas

Pag. 49 de 98

Referencia de Cliente de Microsoft AJAX Library


<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.

MCT: Luis Dueas

Pag. 50 de 98

Referencia de Cliente de Microsoft AJAX Library


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()
{

MCT: Luis Dueas

Pag. 51 de 98

Referencia de Cliente de Microsoft AJAX Library


// 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())
{

MCT: Luis Dueas

Pag. 52 de 98

Referencia de Cliente de Microsoft AJAX Library

// 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

MCT: Luis Dueas

Pag. 53 de 98

Referencia de Cliente de Microsoft AJAX Library

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


elemento de ejecucin.

al

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

MCT: Luis Dueas

Pag. 54 de 98

Referencia de Cliente de Microsoft AJAX Library


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


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.

de

espera

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;

MCT: Luis Dueas

Pag. 55 de 98

Referencia de Cliente de Microsoft AJAX Library


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);

MCT: Luis Dueas

Pag. 56 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 57 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 58 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 59 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 60 de 98

Referencia de Cliente de Microsoft AJAX Library

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


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.

del

objeto

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.

MCT: Luis Dueas

Pag. 61 de 98

Referencia de Cliente de Microsoft AJAX Library


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())
{

MCT: Luis Dueas

Pag. 62 de 98

Referencia de Cliente de Microsoft AJAX Library


// 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


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.

MCT: Luis Dueas

de

la

clase

Pag. 63 de 98

Referencia de Cliente de Microsoft AJAX Library


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
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.

clase

proxy

cliente

del

servicio

de

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
devolucin

MCT: Luis Dueas

establece la funcin de
de
llamada
correcta

Pag. 64 de 98

Referencia de Cliente de Microsoft AJAX Library

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();

MCT: Luis Dueas

Pag. 65 de 98

Referencia de Cliente de Microsoft AJAX Library


}
// 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)

MCT: Luis Dueas

Pag. 66 de 98

Referencia de Cliente de Microsoft AJAX Library


{
// 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

MCT: Luis Dueas

Pag. 67 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 68 de 98

Referencia de Cliente de Microsoft AJAX Library

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


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.

de

usuario

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)

MCT: Luis Dueas

Pag. 69 de 98

Referencia de Cliente de Microsoft AJAX Library


{
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);

MCT: Luis Dueas

Pag. 70 de 98

Referencia de Cliente de Microsoft AJAX Library


}
// 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.

MCT: Luis Dueas

Pag. 71 de 98

Referencia de Cliente de Microsoft AJAX Library


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


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
actualmente.

Sys.Services RoleService timeout (Propiedad)

Obtiene o establece el valor de tiempo de espera del


servicio de funciones.

funciones

del

usuario

de

usuario

autenticado

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

MCT: Luis Dueas

Pag. 72 de 98

Referencia de Cliente de Microsoft AJAX Library


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("");

MCT: Luis Dueas

Pag. 73 de 98

Referencia de Cliente de Microsoft AJAX Library


// 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

MCT: Luis Dueas

Pag. 74 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 75 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 76 de 98

Referencia de Cliente de Microsoft AJAX Library

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

MCT: Luis Dueas

Pag. 77 de 98

Referencia de Cliente de Microsoft AJAX Library

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;
}

MCT: Luis Dueas

Pag. 78 de 98

Referencia de Cliente de Microsoft AJAX Library


.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

MCT: Luis Dueas

Pag. 79 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 80 de 98

Referencia de Cliente de Microsoft AJAX Library

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 />

MCT: Luis Dueas

Pag. 81 de 98

Referencia de Cliente de Microsoft AJAX Library


<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.

MCT: Luis Dueas

Pag. 82 de 98

Referencia de Cliente de Microsoft AJAX Library

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);

MCT: Luis Dueas

Pag. 83 de 98

Referencia de Cliente de Microsoft AJAX Library


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.

MCT: Luis Dueas

Pag. 84 de 98

Referencia de Cliente de Microsoft AJAX Library

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>

MCT: Luis Dueas

Pag. 85 de 98

Referencia de Cliente de Microsoft AJAX Library


<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)


MCT: Luis Dueas

Pag. 86 de 98

Referencia de Cliente de Microsoft AJAX Library


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)
{

MCT: Luis Dueas

Pag. 87 de 98

Referencia de Cliente de Microsoft AJAX Library


// 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 />

MCT: Luis Dueas

Pag. 88 de 98

Referencia de Cliente de Microsoft AJAX Library


<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

MCT: Luis Dueas

Pag. 89 de 98

Referencia de Cliente de Microsoft AJAX Library

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';

MCT: Luis Dueas

Pag. 90 de 98

Referencia de Cliente de Microsoft AJAX Library


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

MCT: Luis Dueas

Pag. 91 de 98

Referencia de Cliente de Microsoft AJAX Library

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;

MCT: Luis Dueas

Pag. 92 de 98

Referencia de Cliente de Microsoft AJAX Library


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">

MCT: Luis Dueas

Pag. 93 de 98

Referencia de Cliente de Microsoft AJAX Library


<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)

MCT: Luis Dueas

Pag. 94 de 98

Referencia de Cliente de Microsoft AJAX Library


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


(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.

ECMAScript

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

MCT: Luis Dueas

Pag. 95 de 98

Referencia de Cliente de Microsoft AJAX Library


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%;

MCT: Luis Dueas

Pag. 96 de 98

Referencia de Cliente de Microsoft AJAX Library


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

MCT: Luis Dueas

Pag. 97 de 98

Referencia de Cliente de Microsoft AJAX Library

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.

MCT: Luis Dueas

Pag. 98 de 98