Referencia de la API de cliente HTML
Este artículo contiene información general sobre las partes generadas de la API de JavaScript para clientes HTML de LightSwitch.
Puntos de entrada para código de cliente HTML
Cada entidad y pantalla, así como la aplicación en sí, exponen los puntos de entrada siguientes, donde puede escribir código de JavaScript personalizado para la aplicación.
Entidad creada
myapp.[EntityName].created = function (entity) {};
Este método se llama cuando se crea una entidad. El objeto entidad crea una propiedad generada para cada una de las propiedades indicadas en Entity Designer.
Suele usarse para establecer valores de propiedades globales para una entidad. En el ejemplo siguiente se establece el valor inicial para la propiedad Asegurado Boolean de una entidad Patient:
myapp.Patient.created = function (entity) {
entity.Insured = new Boolean();
entity.Insured = 'true';
};
Para acceder a este punto de entrada, abra la entidad en el diseñador y seleccione la perspectiva ClienteHTML. En la lista Escribir código, elija created.
Pantalla creada
myapp.[ScreenName].created = function (screen) {}
Este método se llama cada vez que se crea una pantalla.
Suele usarse para establecer valores iniciales de campos en una pantalla. En el ejemplo siguiente se establece el valor para el campo Estado en la pantalla AgregarEditarPaciente:
myapp.AddEditPatient.created = function (screen) {
screen.Patient.State = 'CA'
};
Para acceder a este punto de entrada, abra la pantalla en el diseñador. En la lista Escribir código, elija created.
Pantalla antes de aplicar los cambios
myapp.[ScreenName].beforeApplyChanges = function (screen) {};
Este método se llama cada vez que se inicia una operación de guardar para una pantalla. Si el método devuelve true, se realizará la operación de guardar. Si devuelve false, se cancelará la operación de guardar. Si el método devuelve un objeto WinJs.Promise, la operación de guardar esperará hasta que se complete la promesa (o se produzcan errores) antes de continuar.
Suele usarse para lógica de validación de pantalla. En el ejemplo siguiente se valida el campo PatientName:
myapp.AddEditPatient.beforeApplyChanges = function (screen) {
if (screen.Patient.PatientName.indexOf('!') != -1) {
screen.findContentItem("PatientName").validationResults = [
new msls.ValidationResult(
screen.Patient.details.properties.PatientName,
"Patient Name cannot contain the character '!'.")
];
return false;
}
};
Para acceder a este punto de entrada, abra la pantalla en el diseñador. En la lista Escribir código, seleccione antesDeAplicarCambios.
Guardar aplicación
myapp.onsavechanges = function () {}
Este método se llama cuando se realiza una operación de guardar, después de que el método beforeApplyChanges devuelva true.
Suele usarse para agregar lógica a la operación de guardar (por ejemplo, al guardar varios orígenes de datos). En el ejemplo siguiente se usa el objeto WinJs.Promise para personalizar el comando Guardar integrado.
myapp.onsavechanges = function (e) {
var promises = [];
promises.push(myapp.activeDataWorkspace.NorthwindData.saveChanges());
promises.push(myapp.activeDataWorkspace.ApplicationData.saveChanges());
e.detail.promise = WinJS.Promise.join(promises);
};
Para acceder a este punto de entrada, abra la pantalla en el diseñador y seleccione Escribir código.
Métodos de pantalla
Cada método de pantalla que aparece en la lista de miembros de pantalla del Diseñador de pantallas dispone de dos métodos: execute y canExecute. El método execute suele usarse para realizar una función cuando el usuario hace clic en un botón. El método puedeEjecutar suele usarse para habilitar o deshabilitar un botón según una condición.
Signatura del método |
Comentarios |
Ejemplo |
---|---|---|
myapp.MyScreen.MyMethod_execute = función (pantalla) { }; |
Se ejecuta al hacer clic en el botón MiMétodo o cuando se llama al método MiPantalla.MiMétodo() mediante código. |
En el ejemplo siguiente se elimina el Customer seleccionado en la pantalla BrowseCustomers:
|
myapp.MyScreen.MyMethod_canExecute = función (pantalla) { }; |
Se llama antes de ejecutarse un método. Si esta función devuelve false, el botón MiMétodo estará deshabilitado. Si devuelve true, se habilitará el botón. |
En el ejemplo siguiente se deshabilita el botón Delete para un registro que aún no se ha guardado.
|
Para acceder a métodos de pantalla, abra el menú contextual del método (en el panel izquierdo del Diseñador de pantallas) y seleccione el método.
Representación de contenido de pantalla
myapp.[ScreenName].[ContentItemName]_render = function (element, contentItem)
Este método se llama al crear una pantalla y solo se aplica en controles personalizados. Suele usarse para representar el contenido de los controles en la pantalla.
element es el elemento HTML del control. Use $(element) para crear un objeto jQuery.
contentItem es un objeto msls.ContentItem que permite acceder a los resultados de valor del elemento, de enlace de datos y de validación.
En el ejemplo siguiente se muestra una OrderDate por cada fila en un control de RowTemplate:
myapp.BrowseOrders.RowTemplate_render = function (element, contentItem) {
var orderDate = $("<p>" + contentItem.value.OrderDate + "</p>");
orderDate.appendTo($(element));
};
Para acceder al método render, seleccione un control personalizado en el Diseñador de pantallas. En la lista Escribir código, seleccione NombreDeControl_representación.
Representación posterior de contenido de pantalla
myapp.BrowseTable1Items.ContentItem2_postRender = function (element, contentItem) {};
Este método se llama después de crear o actualizar una pantalla. Suele usarse para modificar los contenidos o la apariencia de un control en la pantalla.
element es el elemento HTML del control. Use $(element) para crear un objeto jQuery.
contentItem es un objeto msls.ContentItem que permite acceder a los resultados de valor del elemento, de enlace de datos y de validación.
En el ejemplo siguiente se da formato a un Double para mostrar dos posiciones decimales en un control llamado Unit:
myapp.ViewItems.Unit_postRender = function (element, contentItem) {
contentItem.dataBind("value", function (value) {
if (value) {
$(element).text(value.toFixed(2));
}
});
}
Para acceder al método postRender, seleccione un control en el Diseñador de pantallas. En la lista Escribir código, seleccione NombreDeControl_representaciónPosterior.
Modelo de objetos generados
LightSwitch genera un conjunto de API personalizadas basado en activos de proyecto que puede usar al escribir código personalizado en el cliente HTML. Cada origen de datos, tabla, consulta y pantalla genera varios elementos en el conjunto de API.
msls
(variable global) msls
Miembros
_ejecutar
_run([homeScreenId : String])
Inicia de forma asincrónica la aplicación de LightSwitch. Este método se llama en el archivo default.html de la aplicación.
Tipo de valor devuelto: WinJS.Promise
operaciónDeCompromiso
promiseOperation(init(operations), [independent: Boolean])
Inicia una nueva operación y devuelve un objeto de compromiso cuando se completa la operación.
Tipo de valor devuelto: WinJS.Promise
Ejemplo:
//Method that imports data from Northwind.svc
myapp.BrowseOrders.ImportOrders_execute = function (screen) {
var northwind = "http://services.odata.org/Northwind/Northwind.svc";
return msls.promiseOperation(function (operation) {
OData.read({ requestUri: northwind + "/Orders?$top=10",
recognizeDates: true,
enableJsonpCallback: true },
function success(result) {
var results = result.results;
for (var i = 0, len = results.length; i < len; i++) {
var importedOrder = screen.Orders.addNew();
importedOrder.OrderDate = results[i].OrderDate;
}
operation.complete();
},
function error(e) { operation.error(e); });
});
};
fechasRelativas
relativeDates
Contiene la implementación de las fechas relativas definidas globalmente.
Tipo de valor devuelto: Fecha
Los métodos que comienzan con "finaliza" devuelven la hora 23:59:59. Los métodos que comienzan con "inicia" devuelven la hora 00:00:00.
Método |
Valores devueltos |
---|---|
endOfDay() |
La fecha y hora de finalización del día actual. |
endOfMonth() |
La fecha y hora de finalización del mes actual. |
endOfQuarter() |
La fecha y hora de finalización del trimestre actual. |
endOfWeek() |
La fecha y hora de finalización de la semana actual. |
endOfYear() |
La fecha y hora de finalización del año actual. |
now() |
La fecha y hora actuales. |
startOfMonth() |
La fecha y hora de inicio del mes actual. |
startOfQuarter() |
La fecha y hora de inicio del trimestre actual. |
startOfWeek() |
La fecha y hora de inicio de la semana actual. |
startOfYear() |
La fecha y hora de inicio del año actual. |
today() |
La fecha actual con la hora 00:00:00. |
El siguiente ejemplo de código devuelve los valores startOfWeek y endOfWeek relacionados de una fecha específica:
myapp.AddEditAppointment.created = function (screen) {
// Write code here.
var currDT = new Date();
ws = msls.relativeDates.startOfWeek(currDT);
we = msls.relativeDates.endOfWeek(currDT);
screen.Appointment.StartDate = ws;
screen.Appointment.EndDate = we;
}
desfasesDeFechaHoraRelativos
relativeDateTimeOffsets
Contiene la implementación de las fechas relativas definidas globalmente mediante el desfase de la hora universal coordinada (UTC).
Tipo de valor devuelto: Fecha
Los métodos que comienzan con "finaliza" devuelven la hora 23:59:59. Los métodos que comienzan con "inicia" devuelven la hora 00:00:00.
Método |
Valores devueltos |
---|---|
endOfDay() |
La fecha y hora de finalización del día actual. |
endOfMonth() |
La fecha y hora de finalización del mes actual. |
endOfQuarter() |
La fecha y hora de finalización del trimestre actual. |
endOfWeek() |
La fecha y hora de finalización de la semana actual. |
endOfYear() |
La fecha y hora de finalización del año actual. |
now() |
La fecha y hora actuales. |
startOfMonth() |
La fecha y hora de inicio del mes actual. |
startOfQuarter() |
La fecha y hora de inicio del trimestre actual. |
startOfWeek() |
La fecha y hora de inicio de la semana actual. |
startOfYear() |
La fecha y hora de inicio del año actual. |
today() |
La fecha actual con la hora 00:00:00. |
representar
render(element: HTMLElement, contentItem: msls.ContentItem)
Representa la visualización de un elemento de contenido dentro de un elemento HTML raíz.
Ejemplo:
myapp.BrowseOrders.RowTemplate_render = function (element, contentItem) {
var orderDate = $("<p>").text(contentItem.value.Customer.CompanyName);
orderDate.appendTo($(element));
};
mostrarCuadroDeMensaje
showMessageBox(message:String, [options])
Muestra un cuadro de mensaje al usuario.
Tipo de valor devuelto: WinJS.Promise
Se devuelve un compromiso cuando el usuario cierra el cuadro de mensaje. Se puede acceder al resultado del cuadro de mensaje (del tipo msls.MessageBoxResults) mediante el compromiso devuelto.
Opciones:
Parámetro |
Descripción |
Default |
---|---|---|
title |
Un título para el cuadro de mensaje. |
none |
buttons |
Un valor msls.MessageBoxButtons que especifica los botones que se mostrarán. |
ok |
Ejemplo:
myapp.AddEditCustomer.Delete_execute = function (screen) {
msls.showMessageBox("Are You Sure?", {
title: "Delete Customer",
buttons: msls.MessageBoxButtons.yesNo
}).then(function (val) {
if (val == msls.MessageBoxResult.yes) {
screen.Customer.deleteEntity();
myapp.commitChanges().then(null, function fail(e) {
var errmsg = screen.Customer.Name + e.message;
myapp.cancelChanges().then(function () {
var resp = msls.showMessageBox(errmsg, {
title: "ERROR",
buttons: msls.MessageBoxButtons.ok
});
throw e;
});
});
}
});
};
mostrarProgreso
showProgress(promise: WinJS.Promise)
Muestra un indicador de progreso que no permite que se use la aplicación hasta que se resuelva o se rechace un compromiso.
Ejemplo:
msls.showProgress(msls.promiseOperation(function (operation) {
$.getJSON(url, function (data) {
operation.complete(data); //Operation completed successfully
}).error(function (args) {
operation.error(args); //Operation completed with error.
});
}) .then(function (result) {
msls.showMessageBox(result);
})
);
msls.aplicación
Representa la aplicación de LightSwitch activa.
Nota
El objeto myapp es un acceso directo para msls.application.
Members
áreaDeTrabajoDeDatosActiva
msls.application.activeDataWorkspace
Obtiene el espacio de trabajo actual de la aplicación.
Ejemplo:
msls.application.activeDataWorkspace.ApplicationData.Query1("parameter value")
.execute().then(
function (results) {
if (results.results.length >= 0) {
msls.showMessageBox("Found some records!");
}
},
function (error) {
alert(error);
}
);
aplicarCambios
msls.application.applyChanges()
Aplica de forma asincrónica los cambios pendientes; para ello, combina los cambios anidados en el conjunto de cambios principal o guarda los cambios de nivel superior y permanece en la pantalla actual. Al llamar a applyChanges se guardan todos los cambios del conjunto de cambios actual. Si solo existe un conjunto de cambios, guarda los cambios en el origen de datos. Si el conjunto de cambios actual es un ámbito anidado, confirma los cambios en el conjunto de cambios principal.
Tipo de valor devuelto: WinJS.Promise
Ejemplo:
// Save changes
msls.application.applyChanges().then(null, function fail(e) {
// If an error occurs, show the error.
msls.showMessageBox(e.message, { title: e.title }).then(function () {
// Discard changes
screen.details.dataWorkspace.ApplicationData.details.discardChanges();
});
});
cancelarCambios
msls.application.cancelChanges()
Deshace todos los cambios en el conjunto de cambios actual y vuelve a la pantalla anterior.
Tipo de valor devuelto: WinJS.Promise
Ejemplo:
msls.application.commitChanges().then(null, function fail(e) {
alert(e.message);
msls.application.cancelChanges();
throw e;
});
confirmarCambios
msls.application.commitChanges()
Confirma de forma asincrónica los cambios pendientes; para ello, combina los cambios anidados en el conjunto de cambios principal o guarda los cambios de nivel superior y vuelve a la pantalla anterior. Al llamar a commitChanges se guardan todos los cambios del conjunto de cambios actual, igual que en applyChanges. La primera validación se ejecuta en la pantalla y, si no se producen errores, se llama a saveChanges.
Tipo de valor devuelto: WinJS.Promise
Ejemplo:
msls.application.commitChanges().then(null, function fail(e) {
alert(e.message);
msls.application.cancelChanges();
throw e;
});
navegarAtrás
msls.application. navigateBack()
Pregunta al usuario si quiere confirmar o cancelar los cambios pendientes y, además, si quiere volver a la pantalla anterior o permanecer en la pantalla actual.
Tipo de valor devuelto: WinJS.Promise
navegarInicio
msls.application. navigateHome()
Navega de forma asincrónica hasta la pantalla principal.
Tipo de valor devuelto: WinJS.Promise
opciones
msls.application.options
Obtiene los valores de opciones que afectan a la aplicación de LightSwitch. Las opciones deben establecerse en el archivo default.htm, antes de llamar a msls._run.
Opción |
Tipo |
Descripción |
---|---|---|
defaultMergeOption |
String |
Especifica cómo combinar los resultados de las consultas con datos almacenados en caché de forma local. Esto puede establecerse en un valor de msls.MergeOption. |
disableUrlScreenParameters |
Boolean |
Especifica si se usa una clave principal para formar la URL de una instancia de pantalla. La característica de marcadores para pantallas de clientes HTML permite a un usuario copiar la URL de una instancia de pantalla específica y devolverla a dicha instancia posteriormente. La URL se basa parcialmente en la clave principal de la entidad de la pantalla; por ello, si la clave principal contiene información confidencial que no quiere que vean los usuarios, deshabilite la característica de marcadores. |
enableModalScrollRegions |
Boolean |
Indica si se usa una región de desplazamiento independiente dentro de vistas modales, como cuadros de diálogo y selectores. Si esta opción no está habilitada, las vistas modales se ampliarán hasta su tamaño completo, lo que permite al usuario desplazarse en la ventana del explorador principal para ver todo el contenido. Esta opción funciona mejor en algunos dispositivos. |
showContentBehindDialog |
Boolean |
Indica si la pantalla de fondo detrás de un cuadro de diálogo es visible o no. No tiene ningún efecto en dispositivos pequeños, ya que los cuadros de diálogo siempre usan toda la pantalla. Al ocultar la pantalla de fondo en dispositivos grandes, se puede mejorar el rendimiento. |
transitionAnimationLevel |
String |
Especifica el nivel de animación que se produce en las transiciones. Una animación sencilla puede mejorar el rendimiento en algunos dispositivos. Esta opción se puede establecer en el valor de msls.TransitionAnimationLevel. |
mostrarPantalla
msls.application.showScreen(screenId, [Array parameters],[options])
Avanza de forma asincrónica hasta una pantalla específica.
Parámetro screenId: nombre modelado de una pantalla o el elemento de modelo que define una pantalla.
Parámetro opcional parameters: matriz de parámetros de pantalla, si corresponde.
Parámetro opcional options: objeto que proporciona una o más de las opciones siguientes:
beforeShown: función a la que se llama después de aplicar el comportamiento de límite, pero antes de que se muestre la pantalla.
afterClosed: función a la que se llama después de aplicar el comportamiento de límite y de cerrar la pantalla.
Tipo de valor devuelto: WinJS.Promise
Ejemplo:
msls.application.showScreen(AddEditPatient, null, {
afterClose: function (addEditScreen, navigationAction) {
if (navigationAction == msls.NavigateBackAction.commit) {
var newPatient = addEditScreen.Patient;
msls.application.showViewPatient(newPatient)
}
}
});
msls.ObjetoDeNegocios
msls.BusinessObject()
Representa un objeto de negocios.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
details |
Representa los detalles de un objeto de negocios. |
msls.BusinessObject.Details |
owner |
Obtiene el objeto de negocios propietario del objeto de detalles. |
|
properties |
Obtiene el conjunto de objetos de propiedades para las propiedades del propietario. |
msls.BusinessObject.Details.PropertySet |
msls.CambioDeColección
msls.CollectionChange(action, [items], [oldStartingIndex], [newStartingIndex])
Proporciona datos para el evento de cambio de colección.
Parámetro action: La acción de tipo msls.CollectionChangeAction que causó el evento.
Parámetro opcional items: La matriz de elementos (colección) afectada por la acción.
Parámetro opcional oldStartingIndex: El índice con que se eliminaron los elementos, si corresponde.
Parámetro opcional newStartingIndex: El índice con que se agregaron los elementos, si corresponde.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
action |
Obtiene la descripción de la acción que causó el evento. |
String |
items |
Obtiene la matriz de elementos afectados por la acción. |
Object |
newStartingIndex |
Obtiene el índice con que se agregaron los elementos, si corresponde. |
Integer |
oldStartingIndex |
Obtiene el índice con que se eliminaron los elementos, si corresponde. |
Integer |
msls.AcciónDeCambioDeColección
msls.CollectionChangeAction
Especifica cómo ha cambiado una colección.
Valor |
Descripción |
---|---|
add |
Especifica que se agregaron elementos a la colección. |
refresh |
Especifica que toda la colección ha cambiado. |
remove |
Especifica que se eliminaron elementos de la colección. |
msls.ElementoDeContenido
msls.ContentItem(screenObject, model)
Representa el modelo de vista de un elemento de contenido que se visualiza en una pantalla. ContentItem está disponible como el argumento contentItem en los métodos postRender y render.
Parámetro screenObject: La pantalla (del tipo msls.Screen) propietaria de este elemento de contenido.
Parámetro model: La definición modelada de este elemento de contenido.
Propiedades
application: obtiene el objeto de la aplicación a la que pertenece el elemento. Tipo: msls.application.
bindingPath: obtiene la ruta de acceso de enlace entre la propiedad “datos” (el origen) y la propiedad “valor” (el destino). Tipo: String.
Ejemplo:
// Adds a div element each time the value of ValueControl1 content item changes.
myapp.EditTable1Item.ChangeNotesControl_render = function (element, contentItem) {
var valueControlContentItem = contentItem.screen.findContentItem("ValueControl1");
contentItem.dataBind(valueControlContentItem.bindingPath, function (newValue) {
$(element).append($("<div> Value of control changed at " + msls.relativeDates.now().toString() + "</div>"));
});
};
children: obtiene los elementos de contenido secundario que son propiedad de este elemento de contenido. Por ejemplo, el contenido secundario de una pestaña serían todos los controles que se muestran cuando la pestaña está activa. Tipo: Matriz de Object.
choiceList: obtiene la lista de opciones estáticas para el valor de este elemento de contenido, si corresponde. Tipo: Matriz.
Ejemplo:
myapp.Screen1.created = function (screen) {
var myDropDown = screen.findContentItem("Status");
var myCustomChoices = new Array({ value: "Active", stringValue: "Active" }, { value: "Resolved", stringValue: "Resolved" });
myDropDown.choiceList = myCustomChoices;
myDropDown.dispatchChange("choiceList");
myDropDown.dispatchChange("value");
};
choicesSource: obtiene o establece una colección visual que proporciona un conjunto dinámico de opciones para el valor de este elemento de contenido. Tipo: msls.VisualCollection.
Nota
Solo es válido para el control Selector modal de detalles.
El valor predeterminado es Auto. En el momento de la ejecución, el control crea de forma dinámica una colección visual que contiene todos los elementos del servidor. choicesSource se puede actualizar a una colección visual más específica, como los resultados de una consulta. Es importante recordar que, por motivos de rendimiento, el control solo inicializa la colección visual una vez.
commandItems: obtiene los elementos de contenido de comando que son propiedad de este elemento de contenido. Tipo: Matriz de msls.ContentItem.
controlModel: obtiene el elemento de modelo que escribe el control que visualiza este elemento de contenido. Tipo: Object.
data: obtiene el objeto de datos de origen desde el que se enlazan las propiedades details y value. Tipo: Object.
description: obtiene o establece la descripción de este elemento de contenido. Tipo: String.
details: obtiene el objeto de la propiedad Details para el valor que representa este elemento de contenido mediante una ruta de acceso de enlace derivada de la propiedad bindingPath. Tipo: msls.BusinessObject.Details.Property.
displayError: obtiene el error de visualización que se produjo para el control, si corresponde. Tipo: String.
displayName: obtiene o establece el nombre para mostrar de este elemento de contenido. Tipo: String.
heightSizingMode: obtiene el modo de ajuste del alto para este elemento de contenido. Tipo: msls.HeightSizingMode (String).
horizontalAlignment: obtiene la alineación horizontal de este elemento de contenido. Tipo: msls.HorizontalAlignment (String).
isEnabled: obtiene un valor que indica si debe habilitarse el control de este elemento de contenido. Tipo: Boolean.
isLoading: obtiene un valor que indica si el control de este elemento de contenido debe mostrarse en el estado de carga. Tipo: Boolean.
isReadOnly: obtiene un valor que indica si el control de este elemento de contenido debe ser de solo lectura. Tipo: Boolean.
isVisible: obtiene o establece un valor que indica si el control de este elemento de contenido debe ser visible. Tipo: Boolean.
kind: obtiene el tipo de este elemento de contenido. Tipo: msls.ContentItemKind (String).
Ejemplo:
// Adds description help to each content item
myapp.AddEditCustomer.columns_postRender = function (element, contentItem) {
// Look for content items with type either 'details' (a navigation property)
// or 'value' (non-relationship properties)
var contentItemTypes = [];
contentItemTypes.push(msls.ContentItemKind.details);
contentItemTypes.push(msls.ContentItemKind.value);
// Find these content items starting from the children of the 'columns' content item
var matchingContentItems = findMatchingContentItems(contentItemTypes, contentItem);
// Find all LABEL elements that are descendants of the parent element rendering the
// 'columns' content item
var $matchingElements = $(element).find("label");
$.each($matchingElements, function (index) {
// Set the LABEL element to float left
$(this).css("float", "left");
// Create a new A element that will display the '?' link
var $help = $("<a href='#'>?</a>");
$help.css({ "cursor": "pointer", "display": "block", "float": "right" });
var correspondingContentItem = matchingContentItems[index];
// Add a click event handler to display the content item description
$help.on('click', function (e) {
e.preventDefault();
contentItem.screen.HelpText = correspondingContentItem.description;
contentItem.screen.showPopup('Help');
});
// Insert the help element as a sibling after the LABEL element
$(this).after($help);
});
};
function findMatchingContentItems(arrayOfTypes, parentContentItem) {
var matches = [];
// Return an empty array if no children to look at
if (parentContentItem.children.length == 0) {
return matches;
}
$.each(parentContentItem.children, function (i, contentItem) {
$.each(arrayOfTypes, function (j, type) {
if (contentItem.kind == type) {
matches.push(contentItem);
}
});
// Check the child's children for matches
matches = matches.concat(findMatchingContentItems(arrayOfTypes, contentItem));
});
return matches;
};
model: obtiene el elemento de modelo que describe este elemento de contenido. Tipo: Object.
name: obtiene el nombre de este elemento de contenido. Tipo: String.
onchange: obtiene o establece un controlador para el evento de cambio, al que se llama cada vez que cambia el valor de una propiedad observable en este objeto. Tipo: Function.
pageKind: obtiene el tipo de página (None, Popup, Tab) de este elemento de contenido. Tipo: msls.PageKind (String).
parent: obtiene el elemento de contenido principal propietario de este elemento de contenido. Tipo: msls.ContentItem.
properties: obtiene el conjunto de propiedades específicas del control usadas para configurar la visualización de este elemento de contenido. Tipo: Object.
screen: obtiene la pantalla que produjo este elemento de contenido. Tipo: msls.Screen.
stringValue: obtiene o establece la representación de cadena de la propiedad value. Se recomienda usar esta propiedad en lugar de la propiedad value al obtener un valor que se muestre en la pantalla. Tipo: String.
validationResults: obtiene o establece el conjunto actual de resultados de validación para este elemento de contenido. Tipo: Matriz de msls.ValidationResult.
Incluye todos los resultados que se establecieron de manera explícita en esta propiedad, además de los resultados que se agregaron mediante validación automática o mediante una llamada al método validate(). Los resultados de validación no se mostrarán hasta que el usuario modifique la propiedad en la interfaz de usuario o intente guardarla.
Ejemplo:
screen.findContentItem("OrderDate").validationResults = [new msls.ValidationResult(screen.Order.details.properties.OrderDate, "Invalid date")];
value: obtiene o establece el valor que representa este elemento de contenido. Tipo: Object.
valueModel: obtiene el elemento de modelo que describe el valor de este elemento de contenido. Tipo: Object.
widthSizingMode: obtiene el modo de ajuste del ancho para este elemento de contenido. Tipo: msls.WidthSizingMode (String).
Métodos
addChangeListener: agrega un agente de escucha de eventos de cambio.
addChangeListener(propertyName, listener)
Parámetro propertyName: un nombre de propiedad, o nulo para el evento de cambio global. Tipo: String.
Parámetro listener: la función a la que se llamará cuando se desencadene el evento de cambio. Tipo: Function.
Ejemplo:
myapp.AddEditCustomer.created = function (screen) {
function onPropertyChanged() {
// Do something.
}
screen.Customer.addChangeListener(
"Property", onPropertyChanged);
function onEvent() {
// Do something.
}
screen.Customer.addEventListener(
"Event", onEvent);
// Clean up when screen is closed.
screen.details.rootContentItem
.handleViewDispose(function () {
screen.Customer.removeChangeListener(
"Property", onPropertyChanged);
screen.Customer.removeEventListener(
"Event", onEvent);
});
};
dataBind: enlaza a un origen identificado por una ruta de acceso de enlace (por ejemplo, value.unitPrice).
dataBind(bindingPath, callback)
Parámetro bindingPath: una ruta de acceso de enlace delimitada por puntos que describe la ruta de acceso al origen. Tipo: String.
Parámetro callback: función a la que se llama cuando cambia el origen. Tipo: Function.
Ejemplo:
myapp.ViewCustomer.Details_postRender = function (element, contentItem) {
contentItem.dataBind("screen.Customer.Name", function (value) {
contentItem.screen.details.displayName = value;
});
};
dispatchChange: desencadena un evento de cambio para una propiedad.
dispatchChange(propertyName)
Parámetro propertyName: nombre de propiedad. Tipo: String.
Ejemplo:
myapp.ViewIncidents.created = function (screen) {
myapp.activeDataWorkspace.Main
.Statuses
.load()
.then(function onComplete(data) {
var choice = screen.findContentItem("Status"),
values = [];
data.results.forEach(function (status){
values.push({
value: status.Id,
stringValue: status.Title
});
});
choice.choiceList = values;
choice.dispatchChange("choiceList");
}, function onError(error) {
msls.showMessageBox(error, {
title: "Error loading Statuses from the backend"
});
});
}
findItem: busca recursivamente un elemento de contenido que empiece a partir de este elemento de contenido.
findItem(contentItemName)
Parámetro contentItemName: el nombre único de un elemento de contenido. Tipo: String.
Devuelve msls.ContentItem: El elemento de contenido con el nombre especificado, si se encuentra; en caso contrario, un valor de falso.
handleViewDispose: establece un controlador para el evento de eliminación de vista.
handleViewDispose(handler)
Parámetro: handler: función a la que se llama cuando se elimina la vista de este elemento de contenido. Tipo: Function.
Ejemplo:
myapp.AddEditCustomer.created = function (screen) {
function onPropertyChanged() {
// Do something.
}
screen.Customer.addChangeListener(
"Property", onPropertyChanged);
function onEvent() {
// Do something.
}
screen.Customer.addEventListener(
"Event", onEvent);
// Clean up when screen is closed.
screen.details.rootContentItem
.handleViewDispose(function () {
screen.Customer.removeChangeListener(
"Property", onPropertyChanged);
screen.Customer.removeEventListener(
"Event", onEvent);
});
};
hasValidationErrors: indica si este elemento de contenido tiene actualmente errores de validación.
hasValidationErrors(recursive)
Parámetro recursive: indica si es necesario comprobar los elementos de contenido secundario. Tipo: Boolean.
Devuelve Boolean: verdadero si hay errores de validación; en caso contrario, falso.
Ejemplo:
if (screen.findContentItem("name").hasValidationErrors()) {
screen.findContentItem("name").validationResults = [];
}
removeChangeListener: elimina un agente de escucha de eventos de cambio.
removeChangeListener(propertyName, listener)
Parámetro propertyName: un nombre de propiedad, o nulo para el evento de cambio global. Tipo: String.
Parámetro listener: el agente de escucha de eventos que debe eliminarse. Tipo: Function.
Ejemplo:
myapp.AddEditCustomer.created = function (screen) {
function onPropertyChanged() {
// Do something.
}
screen.Customer.addChangeListener(
"Property", onPropertyChanged);
function onEvent() {
// Do something.
}
screen.Customer.addEventListener(
"Event", onEvent);
// Clean up when screen is closed.
screen.details.rootContentItem
.handleViewDispose(function () {
screen.Customer.removeChangeListener(
"Property", onPropertyChanged);
screen.Customer.removeEventListener(
"Event", onEvent);
});
};
validate: ejecuta reglas de validación definidas en la propiedad value y actualiza el valor de la propiedad validationResults.
validate(recursive)
Parámetro opcional recursive: indica si también es necesario validar los elementos de contenido secundario. Si es verdadero, se actualizará la propiedad validationResults en los elementos de contenido secundario. Tipo: Boolean.
msls.TipoDeElementoDeContenido
msls.ContentItemKind
Especifica el tipo de un elemento de contenido.
Valor |
Descripción |
---|---|
collection |
Especifica un elemento de contenido que enlaza a una colección visual. |
command |
Especifica un elemento de contenido que enlaza a un comando que invoca un método. |
details |
Especifica un elemento de contenido que enlaza a un objeto (por ejemplo, una entidad). |
group |
Especifica un elemento de contenido que contiene otros elementos de contenido. |
popup |
Especifica el elemento de contenido raíz de un elemento emergente en una pantalla. |
screen |
Especifica el elemento de contenido raíz de una pantalla. |
tab |
Especifica el elemento de contenido raíz de una pestaña en una pantalla. |
value |
Especifica el elemento de contenido que enlaza a un valor (como un número, una fecha o una cadena). |
msls.ServicioDeDatos
msls.DataService(dataWorkspace)
Representa un servicio de datos.
Parámetro opcional dataWorkspace: El área de trabajo de datos propietaria de este servicio de datos. Tipo: msls.DataWorkspace.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
dataService |
Obtiene el servicio de datos propietario de este objeto de detalles. |
|
dataWorkspace |
Obtiene el área de trabajo de datos que administra el servicio de datos, si corresponde. |
|
details |
Representa los detalles de un servicio de datos. |
msls.DataService.Details |
hasChanges |
Obtiene un valor que indica si el servicio de datos tiene cambios (es decir, si existen entidades pendientes de agregar, modificar o eliminar). |
Boolean |
oncontentchange |
Obtiene o establece un controlador para el evento contentchange, al que se llama siempre que se cambia una entidad que sea propiedad del servicio de datos. |
Function |
owner |
Obtiene el servicio de datos propietario de este objeto de detalles. |
|
properties |
Obtiene el conjunto de objetos de propiedad para el servicio de datos. |
msls.DataService.Details.PropertySet |
msls.ConsultaDeServicioDeDatos
msls.DataServiceQuery(source, rootUri, queryParameters)
Representa una consulta de servicio de datos.
Parámetro source: Un objeto de origen que se puede consultar.
Parámetro opcional rootUri: la URI de solicitud raíz, si es una consulta de servicio de datos raíz (por ejemplo, una consulta de navegación de colección). Tipo: Cadena.
Parámetro opcional queryParameters: Los parámetros de consulta, si corresponde (por ejemplo, una consulta de pantalla basada en una operación de consulta con parámetros). Tipo: String.
msls.ÁreaDeTrabajoDeDatos
msls.DataWorkspace()
Representa un área de trabajo de datos.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
dataWorkspace |
Obtiene el área de trabajo de datos propietaria de este objeto de detalles. |
|
details |
Representa los detalles de un área de trabajo de datos. |
msls.DataWorkspace.Details |
hasChanges |
Obtiene un valor que indica si el área de trabajo de datos tiene cambios (es decir, si existen entidades pendientes de agregar, modificar o eliminar). |
Boolean |
hasNestedChangeSets |
Obtiene un valor que indica si el área de trabajo de datos tiene conjuntos de cambios anidados. |
Boolean |
NestedChangeSet(owner) |
Representa un conjunto de cambios anidados. |
|
oncontentchange |
Obtiene o establece un controlador para el evento contentchange, al que se llama siempre que se cambia una entidad que pertenezca a un servicio de datos que sea propiedad de esta área de trabajo de datos. |
Function |
owner |
Obtiene el área de trabajo de datos propietaria de este objeto de detalles. |
|
properties |
Obtiene el conjunto de objetos de propiedad para el área de trabajo de datos. |
msls.DataWorkspace.Details.PropertySet |
msls.Entidad
msls.Entity(entitySet)
Representa una entidad.
Parámetro opcional entitySet: conjunto de entidades que debe contener esta entidad. Tipo: msls.EntitySet.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
details |
Representa los detalles de una entidad. |
msls.Entity.Details |
entity |
Obtiene la entidad propietaria de este objeto de detalles. |
|
entitySet |
Obtiene el conjunto de entidades que contiene la entidad. |
|
entityState |
Obtiene el estado (de msls.EntityState) de la entidad. |
String |
hasEdits |
Obtiene un valor que indica si la entidad tiene ediciones (es decir, si se agregó y se ha editado, modificado o eliminado). |
Boolean |
owner |
Obtiene la entidad propietaria de este objeto de detalles. |
|
Properties |
Obtiene el conjunto de objetos de propiedad para la entidad. |
msls.Entity.Details.PropertySet |
msls.ColecciónDeEntidades
msls.EntityCollection(details, data)
Representa una colección local de entidades.
Parámetro details: el objeto de detalles para la entidad propietaria de esta colección de entidades. Tipo: msls.Entity.Details.
Parámetro data: objeto que proporciona datos de una propiedad. Tipo: Object.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
oncollectionchange |
Obtiene o establece un controlador para el evento de cambio de colección. |
Function |
msls.ConjuntoDeEntidades
msls.EntitySet(dataService, entry)
Representa un conjunto de entidades.
Parámetro dataService: servicio de datos propietario de este conjunto de entidades. Tipo: msls.DataService.
Parámetro entry: entrada de propiedad de conjunto de entidades.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
canDelete |
Obtiene un valor que indica si se pueden eliminar las entidades de este conjunto de entidades. |
Boolean |
canInsert |
Obtiene un valor que indica si se pueden agregar entidades a este conjunto de entidades. |
Boolean |
canUpdate |
Obtiene un valor que indica si se pueden modificar las entidades de este conjunto de entidades. |
Boolean |
dataService |
Obtiene el servicio de datos propietario de este conjunto de entidades. |
|
name |
Obtiene el nombre de este conjunto de entidades. |
String |
msls.EstadoDeEntidad
msls.EntityState
Especifica el estado de una entidad.
Valor |
Descripción |
---|---|
added |
La entidad se ha agregado. |
deleted |
La entidad se ha marcado como eliminada. |
discarded |
La entidad se ha descartado. |
modified |
La entidad se ha modificado. |
unchanged |
La entidad no se ha modificado. |
msls.ModoDeAjusteDelAlto
msls.HeightSizingMode
Especifica cómo se calcula el alto de un elemento de contenido.
Valor |
Descripción |
---|---|
FitToContent |
Especifica que el alto del elemento de contenido se basa en el alto del contenido. |
FixedSize |
Especifica que el alto del elemento de contenido es fijo. |
StretchToContainer |
Especifica que el alto del elemento de contenido se basa en el alto disponible proporcionado por su elemento de contenido principal. |
msls.AlineaciónHorizontal
msls.HorizontalAlignment
Especifica la alineación horizontal de un elemento de contenido.
Valor |
Descripción |
---|---|
Left |
Especifica que el elemento de contenido esté alineado a la izquierda. |
Right |
Especifica que el elemento de contenido esté alineado a la derecha. |
msls.OpciónDeCombinación
msls.MergeOption
Especifica cómo se combinan las entidades que ya están en el área de trabajo de datos con las nuevas entidades que se carguen.
Valor |
Descripción |
---|---|
appendOnly |
Las entidades que no existen en el área de trabajo de datos se agregan al área de trabajo de datos. Si una entidad ya está en el área de trabajo de datos, los valores actuales y originales de las propiedades de la entidad no se sobrescribirán con valores del origen de datos. Esta es la opción de combinación predeterminada. |
unchangedOnly |
Las entidades que no existen en el área de trabajo de datos se agregan al área de trabajo de datos. Si una entidad ya está en el área de trabajo de datos y el estado de su entidad es sin cambios, los valores actuales y originales de las propiedades de la entidad no se sobrescribirán con valores del origen de datos. |
msls.BotonesDeCuadroDeMensaje
msls.MessageBoxButtons
Especifica los botones que se mostrarán en un cuadro de mensaje.
Valor |
Descripción |
---|---|
ok |
Especifica el botón Aceptar. |
okCancel |
Especifica los botones Aceptar y Cancelar. |
yesNo |
Especifica los botones Sí y No. |
yesNoCancel |
Especifica los botones Sí, No y Cancelar. |
msls.ResultadoDeCuadroDeMensaje
msls.MessageBoxResult
Especifica el botón que se seleccionó de un cuadro de mensaje.
Valor |
Descripción |
---|---|
cancel |
Especifica que se invocó el botón Cancelar. |
no |
Especifica que se invocó el botón No. |
ok |
Especifica que se invocó el botón Aceptar. |
yes |
Especifica que se invocó el botón Sí. |
msls.AcciónDeNavegarAtrás
msls.NavigateBackAction
Especifica la acción que se realizó al retroceder desde una pantalla.
Valor |
Descripción |
---|---|
cancel |
Especifica que se cancelaron los cambios en la pantalla anterior. |
commit |
Especifica que en la pantalla anterior se confirmaron los cambios en el origen de datos. |
msls.ObjetoConDetalles
msls.ObjectWithDetails
Representa un objeto que contiene un objeto details.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
details |
Representa los detalles de un objeto con detalles. |
msls.ObjetoConDetalles.Detalles |
onchange |
Obtiene o establece un controlador para el evento de cambio, al que se llama cada vez que cambia el valor de una propiedad observable en este objeto. |
Function |
owner |
Representa el objeto propietario de este objeto de detalles. |
|
properties |
Obtiene el conjunto de objetos de propiedades para las propiedades del propietario. |
msls.ObjectWithDetails.Details.PropertySet |
msls.TipoDePágina
msls.PageKind
Especifica el tipo de página representado por un elemento de contenido.
Valor |
Descripción |
---|---|
None |
Especifica que el elemento de contenido no representa una página. |
Popup |
Especifica que el elemento de contenido representa un elemento emergente que se muestra mediante una opción de límite anidado. |
Tab |
Especifica que el elemento de contenido representa una pestaña que aparece en la barra de pestañas de la pantalla. |
msls.Pantalla
Screen(dataWorkspace, modelId, screenParameters)
Representa una pantalla.
Parámetro dataWorkspace: El área de trabajo de datos asociado con la pantalla. Tipo: msls.DataWorkspace.
Parámetro modelId: El identificador del elemento de modelo que define esta pantalla. Tipo: String.
Parámetro opcional screenParameters: Un objeto que contiene parámetros para la pantalla. Tipo: Array.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
dataWorkspace |
Obtiene el área de trabajo de datos que proporciona los datos de la pantalla. |
|
description |
Obtiene o establece la descripción de la pantalla. |
String |
details |
Representa los detalles de una pantalla. |
msls.Screen.Details |
displayName |
Obtiene o establece el nombre para mostrar de la pantalla. |
String |
owner |
Obtiene la pantalla propietaria de este objeto de detalles. |
msls.Screen |
pages |
Obtiene una matriz de los elementos de contenido raíz de las pestañas y elementos emergentes de la pantalla. |
|
properties |
Obtiene el conjunto de objetos de propiedad de la pantalla. |
msls.Screen.Details.PropertySet |
rootContentItem |
Obtiene el elemento de contenido raíz de la pantalla. |
|
saveChangesTo |
Obtiene una matriz de los servicios de datos editables de la pantalla. |
|
screen |
Obtiene la pantalla propietaria de este objeto de detalles. |
msls.Screen |
serverErrors |
Obtiene los errores de validación del servidor que se produjeron la última vez que se guardó la pantalla. |
|
startPage |
Obtiene el elemento de contenido raíz de la página de inicio de la pantalla. |
msls.Secuencia
msls.Sequence()
Representa una secuencia.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
Array |
Obtiene una matriz que representa esta secuencia. |
Object |
msls.NivelDeAnimaciónDeTransición
msls.TransitionAnimationLevel
Especifica el nivel de animación que se produce en las transiciones.
Valor |
Descripción |
---|---|
Full |
Usa animaciones de transición completa. |
Simple |
Usa animaciones de transición que usan menos recursos de procesador o de potencia. |
msls.ResultadoDeValidación
msls.ValidationResult(property, message)
Representa un resultado de validación.
Parámetro property: propiedad que se asocia con el resultado de validación. Tipo: msls.BusinessObject.Details.Property.
Parámetro message: mensaje que describe el error de validación. Tipo: String.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
message |
Obtiene un mensaje que describe el error de validación. |
String |
property |
Obtiene la propiedad donde se produjo el error de validación. |
msls.BusinessObject.Details.Property |
msls.ColecciónVisual
VisualCollection(screenDetails, loader)
Representa una colección de datos que se muestra en una pantalla.
Parámetro screenDetails: objeto de detalles de pantalla propietario de la colección de pantalla cuyo valor es esta colección. Tipo: msls.Screen.Details.
Parámetro loader: objeto que se usa para cargar datos en la colección.
Miembros
Miembro |
Descripción |
Tipo |
---|---|---|
canLoadMore |
Obtiene un valor que indica si esta colección puede cargar más páginas de datos. |
Boolean |
count |
Obtiene el número de elementos que contiene actualmente esta colección. |
Integer |
data |
Obtiene los elementos que contiene actualmente esta colección. |
Array |
isLoaded |
Obtiene un valor que indica si esta colección ha cargado una o más páginas de datos. |
Boolean |
loadError |
Obtiene el último error de carga producido, o bien devuelve un valor nulo si no se ha producido ningún error. |
String |
screen |
Obtiene la pantalla propietaria de esta colección. |
|
selectedItem |
Obtiene o establece el elemento seleccionado actualmente. |
|
state |
Obtiene el estado actual (de msls.VisualCollection.State) de esta colección. |
String |
Valores de VisualCollection.State:
Valor |
Descripción |
---|---|
idle |
Especifica que la colección visual no está cargando datos actualmente. |
loading |
Especifica que la colección visual está cargando datos actualmente. |
loadingMore |
Especifica que la colección visual está cargando más datos actualmente. |
msls.ModoDeAjusteDeAncho
msls.WidthSizingMode
Especifica cómo se calcula el ancho de un elemento de contenido.
Valor |
Descripción |
---|---|
FitToContent |
Especifica que el ancho del elemento de contenido se basa en el ancho de su contenido. |
FixedSize |
Especifica que el ancho del elemento de contenido es fijo. |
StretchToContainer |
Especifica que el ancho del elemento de contenido se basa en el ancho disponible proporcionado por su elemento de contenido principal. |
Vea también
Tareas
Cómo: Controlar los eventos de pantalla en un cliente móvil para una aplicación LightSwitch
Cómo: Modificar una pantalla HTML usando código