Riferimenti alle API client HTML
Questo articolo offre una panoramica delle parti generate dell'API JavaScript per i client HTML LightSwitch.
Punti di ingresso per il codice client HTML
Ogni entità e schermata, oltre all'app stessa, espone i punti di ingresso seguenti, in cui è possibile scrivere codice JavaScript personalizzato per l'app.
Entity Created
myapp.[EntityName].created = function (entity) {};
Questo metodo viene chiamato quando viene creata un'entità. L'oggetto entità crea una proprietà generata per ogni proprietà elencata nella finestra di progettazione dell'entità.
Viene in genere usato per impostare i valori delle proprietà globali per un'entità. L'esempio seguente imposta il valore iniziale per una proprietà Boolean Insured di un'entità Patient:
myapp.Patient.created = function (entity) {
entity.Insured = new Boolean();
entity.Insured = 'true';
};
Per accedere a questo punto di ingresso, aprire la finestra di progettazione dell'entità e scegliere la prospettiva HTMLClient. Nell'elenco Scrivi codice scegliere created.
Screen Created
myapp.[ScreenName].created = function (screen) {}
Questo metodo viene chiamato ogni volta che viene creata una schermata.
Viene in genere usato per impostare i valori iniziali dei campi in una schermata. L'esempio seguente imposta i valori del campo State in una schermata AddEditPatient:
myapp.AddEditPatient.created = function (screen) {
screen.Patient.State = 'CA'
};
Per accedere a questo punto di ingresso, aprire la finestra di progettazione della schermata. Nell'elenco Scrivi codice scegliere created.
Screen Before Apply Changes
myapp.[ScreenName].beforeApplyChanges = function (screen) {};
Questo metodo viene chiamato ogni volta che viene avviata un'operazione di salvataggio di una schermata. Se il metodo restituisce true, l'operazione di salvataggio prosegue. Se restituisce false, l'operazione di salvataggio viene annullata. Se il metodo restituisce un oggetto WinJs.Promise, l'operazione di salvataggio attende il completamento (o la non riuscita) del codice promise prima di continuare.
Viene in genere usato per la logica di convalida della schermata. L'esempio seguente convalida il 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;
}
};
Per accedere a questo punto di ingresso, aprire la finestra di progettazione della schermata. Nell'elenco Scrivi codice scegliere beforeApplyChanges.
Application Save
myapp.onsavechanges = function () {}
Questo metodo viene chiamato quando ha luogo un'operazione di salvataggio, dopo che il metodo beforeApplyChanges restituisce true.
Viene in genere usato per aggiungere logica all'operazione di salvataggio, ad esempio durante il salvataggio in più origini dati. L'esempio seguente usa l'oggetto WinJs.Promise per personalizzare il comando predefinito Save.
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);
};
Per accedere a questo punto di ingresso, aprire la finestra di progettazione della schermata e scegliere Scrivi codice.
Metodi schermata
Per ogni metodo schermata nell'elenco dei membri schermata della finestra di progettazione della schermata sono disponibili due metodi: execute e canExecute. Il metodo execute viene in genere usato per eseguire una funzione quando un utente fa clic su un pulsante. Il metodo canExecute viene in genere usato per abilitare o disabilitare un pulsante in base a una condizione.
Firma del metodo |
Note |
Esempio |
---|---|---|
myapp.MyScreen.MyMethod_execute = funzione (schermata) { }; |
Eseguito quando si fa clic sul pulsante MyMethod o quando il metodo MyScreen.MyMethod() viene chiamato dal codice. |
L'esempio seguente elimina l'oggetto Customer selezionato in una schermata BrowseCustomers:
|
myapp.MyScreen.MyMethod_canExecute = funzione (schermata) { }; |
Chiamato prima dell'esecuzione di un metodo. Se questa funzione restituisce false, il pulsante MyMethod viene disabilitato. Se restituisce true, il pulsante viene abilitato. |
L'esempio seguente disabilita un pulsante Delete per un record che non è stato ancora salvato.
|
Per accedere ai metodi schermata, aprire il menu di scelta rapida del metodo nel riquadro sinistro della finestra di progettazione della schermata e quindi scegliere il metodo.
Screen Content Render
myapp.[ScreenName].[ContentItemName]_render = function (element, contentItem)
Questo metodo viene chiamato quando viene creata una schermata e si applica solo ai controlli personalizzati. Viene in genere usato per eseguire il rendering del contenuto del controllo nella schermata.
element è l'elemento HTML del controllo. Usare $(element) per creare un oggetto jQuery.
contentItem è un oggetto msls.ContentItem che consente l'accesso al valore, all'associazione dati e ai risultati di convalida dell'elemento.
L'esempio seguente visualizza un oggetto OrderDate per ogni riga in un controllo RowTemplate:
myapp.BrowseOrders.RowTemplate_render = function (element, contentItem) {
var orderDate = $("<p>" + contentItem.value.OrderDate + "</p>");
orderDate.appendTo($(element));
};
Per accedere al metodo render, scegliere un controllo personalizzato nella finestra di progettazione della schermata. Nell'elenco Scrivi codice scegliere ControlName_render.
Screen Content Post Render
myapp.BrowseTable1Items.ContentItem2_postRender = function (element, contentItem) {};
Questo metodo viene chiamato dopo la creazione o l'aggiornamento di una schermata. Viene in genere usato per modificare il contenuto o l'aspetto di un controllo nella schermata.
element è l'elemento HTML del controllo. Usare $(element) per creare un oggetto Jquery.
contentItem è un oggetto msls.ContentItem che consente l'accesso al valore, all'associazione dati e ai risultati di convalida dell'elemento.
L'esempio seguente formatta un oggetto Double in modo da visualizzare due posizioni decimali in un controllo denominato Unit:
myapp.ViewItems.Unit_postRender = function (element, contentItem) {
contentItem.dataBind("value", function (value) {
if (value) {
$(element).text(value.toFixed(2));
}
});
}
Per accedere al metodo postRender, scegliere un controllo nella finestra di progettazione della schermata. Nell'elenco Scrivi codice scegliere ControlName_postRender.
Modello a oggetti generato
LightSwitch genera un set di API personalizzato in base alle risorse di progetto usate per scrivere codice personalizzato nel client HTML. Ogni origine dati, tabella, query e schermata genera vari elementi nel set di API.
msls
(variabile globale) msls
Membri
_run
_run([homeScreenId : String])
Avvia in modo asincrono l'applicazione LightSwitch. Questo metodo viene chiamato nel file default.html dell'applicazione.
Tipo restituito: WinJS.Promise
promiseOperation
promiseOperation(init(operations), [independent: Boolean])
Inizia una nuova operazione e restituisce un oggetto promise al completamento dell'operazione.
Tipo restituito: WinJS.Promise
Esempio:
//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); });
});
};
relativeDates
relativeDates
Contiene l'implementazione delle date relative definite a livello globale.
Tipo restituito: Date
I metodi che iniziano con "end" restituiscono l'ora 23:59:59. I metodi che iniziano con "start" restituiscono l'ora 00:00:00.
Metodo |
Valore restituito |
---|---|
endOfDay() |
Data e ora della fine del giorno corrente. |
endOfMonth() |
Data e ora della fine del mese corrente. |
endOfQuarter() |
Data e ora della fine del trimestre corrente. |
endOfWeek() |
Data e ora della fine della settimana corrente. |
endOfYear() |
Data e ora della fine dell'anno corrente. |
now() |
Data e ora corrente. |
startOfMonth() |
Data e ora dell'inizio del mese corrente. |
startOfQuarter() |
Data e ora dell'inizio del trimestre corrente. |
startOfWeek() |
Data e ora dell'inizio della settimana corrente. |
startOfYear() |
Data e ora dell'inizio dell'anno corrente. |
today() |
Data corrente alle ore 00:00:00. |
L'esempio di codice seguente restituisce i valori di startOfWeek e endOfWeek relativi a una data specificata:
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;
}
relativeDateTimeOffsets
relativeDateTimeOffsets
Contiene l'implementazione delle date relative definite a livello globale usando lo scarto dall'ora UTC (Coordinated Universal Time).
Tipo restituito: Date
I metodi che iniziano con "end" restituiscono l'ora 23:59:59. I metodi che iniziano con "start" restituiscono l'ora 00:00:00.
Metodo |
Valore restituito |
---|---|
endOfDay() |
Data e ora della fine del giorno corrente. |
endOfMonth() |
Data e ora della fine del mese corrente. |
endOfQuarter() |
Data e ora della fine del trimestre corrente. |
endOfWeek() |
Data e ora della fine della settimana corrente. |
endOfYear() |
Data e ora della fine dell'anno corrente. |
now() |
Data e ora corrente. |
startOfMonth() |
Data e ora dell'inizio del mese corrente. |
startOfQuarter() |
Data e ora dell'inizio del trimestre corrente. |
startOfWeek() |
Data e ora dell'inizio della settimana corrente. |
startOfYear() |
Data e ora dell'inizio dell'anno corrente. |
today() |
Data corrente alle ore 00:00:00. |
render
render(element: HTMLElement, contentItem: msls.ContentItem)
Esegue il rendering della visualizzazione di un elemento di contenuto all'interno di un elemento HTML radice.
Esempio:
myapp.BrowseOrders.RowTemplate_render = function (element, contentItem) {
var orderDate = $("<p>").text(contentItem.value.Customer.CompanyName);
orderDate.appendTo($(element));
};
showMessageBox
showMessageBox(message:String, [options])
Visualizza una finestra di messaggio all'utente.
Tipo restituito: WinJS.Promise
Quando l'utente chiude la finestra di messaggio, viene restituito un oggetto promise. È possibile accedere al risultato della finestra di messaggio (di tipo msls.MessageBoxResults) tramite l'oggetto promise restituito.
Opzioni:
Parametro |
Descrizione |
Impostazione predefinita |
---|---|---|
title |
Titolo della finestra di messaggio. |
none |
buttons |
Valore msls.MessageBoxButtons che specifica i pulsanti da visualizzare. |
ok |
Esempio:
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;
});
});
}
});
};
showProgress
showProgress(promise: WinJS.Promise)
Mostra un indicatore di stato che impedisce l'uso dell'applicazione finché un oggetto promise non viene risolto o rifiutato.
Esempio:
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.application
Rappresenta l'applicazione LightSwitch attiva.
Nota
L'oggetto myapp è un'alternativa rapida a msls.application.
Members
activeDataWorkspace
msls.application.activeDataWorkspace
Ottiene l'area di lavoro corrente dell'applicazione.
Esempio:
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);
}
);
applyChanges
msls.application.applyChanges()
Applica le modifiche in sospeso in modo asincrono unendo le modifiche annidate al set di modifiche padre o salvando le modifiche di primo livello, quindi rimane nella schermata corrente. La chiamata di applyChanges salva tutte le modifiche del set di modifiche corrente. Se esiste un solo set di modifiche, salva le modifiche nell'origine dati. Se il set di modifiche corrente è in un ambito annidato, esegue il commit delle modifiche nel set di modifiche padre.
Tipo restituito: WinJS.Promise
Esempio:
// 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();
});
});
cancelChanges
msls.application.cancelChanges()
Annulla tute le modifiche apportate nel set di modifiche corrente e torna alla schermata precedente.
Tipo restituito: WinJS.Promise
Esempio:
msls.application.commitChanges().then(null, function fail(e) {
alert(e.message);
msls.application.cancelChanges();
throw e;
});
commitChanges
msls.application.commitChanges()
Esegue il commit delle modifiche in sospeso in modo asincrono unendo le modifiche annidate al set di modifiche padre o salvando le modifiche di primo livello, quindi torna alla schermata precedente. La chiamata di commitChanges salva tutte le modifiche del set di modifiche corrente, esattamente come applyChanges. Viene prima di tutto eseguita la convalida nella schermata e, se non ci sono errori, viene chiamato saveChanges.
Tipo restituito: WinJS.Promise
Esempio:
msls.application.commitChanges().then(null, function fail(e) {
alert(e.message);
msls.application.cancelChanges();
throw e;
});
navigateBack
msls.application. navigateBack()
Richiede all'utente di eseguire il commit o di annullare le eventuali modifiche in sospeso e quindi di tornare alla schermata precedente o rimanere in quella corrente.
Tipo restituito: WinJS.Promise
navigateHome
msls.application. navigateHome()
Avanza alla schermata principale in modo asincrono.
Tipo restituito: WinJS.Promise
options
msls.application.options
Ottiene i valori delle opzioni che influiscono sull'applicazione LightSwitch. Le opzioni devono essere impostate nel file default.htm, prima di chiamare msls._run.
Opzione |
Tipo |
Descrizione |
---|---|---|
defaultMergeOption |
String |
Specifica come unire i risultati delle query con i dati memorizzati nella cache locale. Può essere impostata su un valore di msls.MergeOption. |
disableUrlScreenParameters |
Boolean |
Specifica se viene usata una chiave primaria per formare l'URL di un'istanza di schermata. La funzionalità di aggiunta di segnalibri per le schermate dei client HTML consente a un utente di copiare l'URL di un'istanza di schermata specifica e di tornare a tale istanza successivamente. L'URL è parzialmente basato sulla chiave primaria dell'entità della schermata, pertanto se la chiave primaria contiene informazioni riservate è possibile impedire agli utenti di visualizzarle disabilitando la funzionalità di aggiunta di segnalibri. |
enableModalScrollRegions |
Boolean |
Indica se usare un'area di scorrimento indipendente all'interno di visualizzazioni modali come finestre di dialogo e riquadri di selezione. Se questa opzione non è abilitata, le visualizzazioni modali verranno espanse fino alle dimensioni intere, consentendo all'utente di scorrere nella finestra principale del browser per visualizzare tutto il contenuto. Questa opzione funziona meglio con alcuni dispositivi. |
showContentBehindDialog |
Boolean |
Indica se la schermata di sfondo dietro a una finestra di dialogo deve essere visibile. Questa opzione non ha effetto sui dispositivi di piccole dimensioni, perché una finestra di dialogo usa sempre l'intero display. Nascondendo la schermata di sfondo nei dispositivi di grandi dimensioni è possibile migliorare le prestazioni. |
transitionAnimationLevel |
String |
Specifica il livello di animazione che si verifica durante le transizioni. Un'animazione semplice può migliorare le prestazioni in alcuni dispositivi. Questa opzione può essere impostata su un valore di msls.TransitionAnimationLevel. |
showScreen
msls.application.showScreen(screenId, [Array parameters],[options])
Avanza a una schermata specifica in modo asincrono.
Parametro screenId: nome modellato di una schermata o elemento di modello che definisce una schermata.
Parametro facoltativo parameters: matrice di parametri di schermata, se applicabile.
Parametro facoltativo options: oggetto che fornisce una o più delle opzioni seguenti:
beforeShown: funzione chiamata dopo l'applicazione del comportamento del limite ma prima della visualizzazione della schermata.
afterClosed: funzione chiamata dopo l'applicazione del comportamento del limite e la chiusura della schermata.
Tipo restituito: WinJS.Promise
Esempio:
msls.application.showScreen(AddEditPatient, null, {
afterClose: function (addEditScreen, navigationAction) {
if (navigationAction == msls.NavigateBackAction.commit) {
var newPatient = addEditScreen.Patient;
msls.application.showViewPatient(newPatient)
}
}
});
msls.BusinessObject
msls.BusinessObject()
Rappresenta un oggetto business.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
details |
Rappresenta i dettagli di un oggetto business. |
msls.BusinessObject.Details |
owner |
Ottiene l'oggetto business a cui appartiene questo oggetto dettagli. |
|
properties |
Ottiene il set di oggetti proprietà delle proprietà del proprietario. |
msls.BusinessObject.Details.PropertySet |
msls.CollectionChange
msls.CollectionChange(action, [items], [oldStartingIndex], [newStartingIndex])
Fornisce i dati per l'evento di modifica raccolta.
Parametro action: azione di tipo msls.CollectionChangeAction che ha causato l'evento.
Parametro facoltativo items: matrice degli elementi (raccolta) interessati dall'azione.
Parametro facoltativo oldStartingIndex: indice in corrispondenza del quale sono stati rimossi gli elementi, se applicabile.
Parametro facoltativo newStartingIndex: indice in corrispondenza del quale sono stati aggiunti gli elementi, se applicabile.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
action |
Ottiene la descrizione dell'azione che ha causato l'evento. |
String |
items |
Ottiene la matrice degli elementi interessati dall'azione. |
Object |
newStartingIndex |
Ottiene l'indice in corrispondenza del quale sono stati aggiunti gli elementi, se applicabile. |
Integer |
oldStartingIndex |
Ottiene l'indice in corrispondenza del quale sono stati rimossi gli elementi, se applicabile. |
Integer |
msls.CollectionChangeAction
msls.CollectionChangeAction
Specifica come una raccolta è stata modificata.
Valore |
Descrizione |
---|---|
add |
Specifica che alcuni elementi sono stati aggiunti alla raccolta. |
refresh |
Specifica che l'intera raccolta è stata modificata. |
remove |
Specifica che alcuni elementi sono stati rimossi dalla raccolta. |
msls.ContentItem
msls.ContentItem(screenObject, model)
Rappresenta il modello di visualizzazione di un elemento di contenuto visualizzato da una schermata. ContentItem è disponibile come argomento contentItem nei metodi postRender e render.
Parametro screenObject: schermata (di tipo msls.Screen) a cui appartiene questo elemento di contenuto.
Parametro model: definizione modellata di questo elemento di contenuto.
Proprietà
application: ottiene l'oggetto applicazione a cui appartiene l'elemento. Tipo: msls.application.
bindingPath: ottiene il percorso di associazione tra la proprietà "dati" (origine) e la proprietà "valore" (destinazione). Tipo: String.
Esempio:
// 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: ottiene gli elementi di contenuto figlio che appartengono a questo elemento di contenuto. Ad esempio, gli elementi figlio di una Scheda sono tutti i controlli visualizzati quando la scheda è attiva. Tipo: matrice di Object.
choiceList: ottiene l'elenco delle opzioni statiche per il valore di questo elemento di contenuto, se applicabile. Tipo: matrice.
Esempio:
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: ottiene o imposta una raccolta visuale che fornisce un insieme dinamico di opzioni per il valore di questo elemento di contenuto. Tipo: msls.VisualCollection.
Nota
Si applica solo al controllo Dettagli selezione modale.
Il valore predefinito è Auto. In fase di esecuzione, il controllo crea dinamicamente una raccolta visuale che contiene ogni elemento nel server. choicesSource può essere aggiornato a una raccolta visuale più specifica, come i risultati di una query. Si noti che il controllo inizializza la raccolta visuale una sola volta per motivi di prestazioni.
commandItems: ottiene gli elementi di contenuto di comando che appartengono a questo elemento di contenuto. Tipo: matrice di msls.ContentItem.
controlModel: ottiene l'elemento di modello che descrive il controllo che visualizza questo elemento di contenuto. Tipo: Object.
data: ottiene l'oggetto dati di origine da cui sono associate le proprietà details e value. Tipo: Object.
description: ottiene o imposta la descrizione di questo elemento di contenuto. Tipo: String.
details: ottiene l'oggetto proprietà Details per il valore rappresentato da questo elemento di contenuto, mediante un percorso di associazione derivato dalla proprietà bindingPath. Tipo: msls.BusinessObject.Details.Property.
displayError: ottiene l'eventuale errore di visualizzazione verificatosi per il controllo. Tipo: String.
displayName: ottiene o imposta il nome visualizzato di questo elemento di contenuto. Tipo: String.
heightSizingMode: ottiene la modalità di ridimensionamento dell'altezza per questo elemento di contenuto. Tipo: msls.HeightSizingMode (String).
horizontalAlignment: ottiene l'allineamento orizzontale di questo elemento di contenuto. Tipo: msls.HorizontalAlignment (String).
isEnabled: ottiene un valore che indica se il controllo di questo elemento di contenuto deve essere abilitato. Tipo: Boolean.
isLoading: ottiene un valore che indica se il controllo relativo a questo elemento di contenuto deve essere visualizzato nello stato di caricamento. Tipo: Boolean.
isReadOnly: ottiene un valore che indica se il controllo relativo a questo elemento di contenuto deve essere di sola lettura. Tipo: Boolean.
isVisible: ottiene un valore che indica se il controllo relativo a questo elemento di contenuto deve essere visibile. Tipo: Boolean.
kind: ottiene il tipo di questo elemento di contenuto. Tipo: msls.ContentItemKind (String).
Esempio:
// 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: ottiene l'elemento di modello che descrive questo elemento di contenuto. Tipo: Object.
name: ottiene il nome di questo elemento di contenuto. Tipo: String.
onchange: ottiene o imposta un gestore per l'evento di modifica, che viene chiamato ogni volta che cambia il valore di una proprietà osservabile su questo oggetto. Tipo: Function.
pageKind: ottiene il tipo di pagina (None, Popup, Tab) di questo elemento di contenuto. Tipo: msls.PageKind (String).
parent: ottiene l'elemento di contenuto padre a cui appartiene questo elemento di contenuto. Tipo: msls.ContentItem.
properties: ottiene l'insieme di proprietà specifiche del controllo usate per configurare la visualizzazione di questo elemento di contenuto. Tipo: Object.
screen: ottiene la schermata che ha prodotto questo elemento di contenuto. Tipo: msls.Screen.
stringValue: ottiene o imposta la rappresentazione di stringa della proprietà value. È preferibile usare questa proprietà invece della proprietà value per ottenere un valore da visualizzare nella schermata. Tipo: String.
validationResults: ottiene o imposta il set corrente di risultati di convalida per questo elemento di contenuto. Tipo: matrice di msls.ValidationResult.
Include i risultati impostati in modo esplicito in questa proprietà, oltre agli eventuali risultati aggiunti dalla convalida automatica o mediante la chiamata del metodo validate(). Si noti che i risultati della convalida non vengono visualizzati finché l'utente non modifica la proprietà nell'interfaccia utente o prova a salvare.
Esempio:
screen.findContentItem("OrderDate").validationResults = [new msls.ValidationResult(screen.Order.details.properties.OrderDate, "Invalid date")];
value: ottiene o imposta il valore rappresentato da questo elemento di contenuto. Tipo: Object.
valueModel: ottiene l'elemento di modello che descrive il valore di questo elemento di contenuto. Tipo: Object.
widthSizingMode: ottiene la modalità di ridimensionamento della larghezza per questo elemento di contenuto. Tipo: msls.WidthSizingMode (String).
Metodi
addChangeListener: aggiunge un listener di eventi.
addChangeListener(propertyName, listener)
Parametro propertyName: nome di proprietà oppure null per l'evento di modifica globale. Tipo: String.
Parametro listener:funzione da chiamare quando viene generato l'evento di modifica. Tipo: Function.
Esempio:
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: esegue l'associazione a un'origine identificata da un percorso di associazione (ad esempio value.unitPrice).
dataBind(bindingPath, callback)
Parametro bindingPath: percorso di associazione delimitato da punti che descrive il percorso dell'origine. Tipo: String.
Parametro callback: funzione chiamata quando l'origine viene modificata. Tipo: Function.
Esempio:
myapp.ViewCustomer.Details_postRender = function (element, contentItem) {
contentItem.dataBind("screen.Customer.Name", function (value) {
contentItem.screen.details.displayName = value;
});
};
dispatchChange: genera un evento di modifica per una proprietà.
dispatchChange(propertyName)
Parametro propertyName: nome di proprietà. Tipo: String.
Esempio:
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: esegue una ricerca ricorsiva di un elemento di contenuto a partire da questo elemento di contenuto.
findItem(contentItemName)
Parametro contentItemName: nome univoco di un elemento di contenuto. Tipo: String.
Restituisce msls.ContentItem: elemento di contenuto con il nome specificato, se trovato, altrimenti false.
handleViewDispose: imposta un gestore per l'evento di eliminazione della visualizzazione.
handleViewDispose(handler)
Parametro: handler: funzione chiamata quando la visualizzazione di questo elemento di contenuto viene eliminata. Tipo: Function.
Esempio:
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 se questo elemento di contenuto presenta attualmente errori di convalida.
hasValidationErrors(recursive)
Parametro recursive: indica se devono essere controllati anche gli elementi di contenuto figlio. Tipo: Boolean.
Restituisce Boolean: true se non ci sono errori di convalida, altrimenti false.
Esempio:
if (screen.findContentItem("name").hasValidationErrors()) {
screen.findContentItem("name").validationResults = [];
}
removeChangeListener: rimuove un listener di eventi di modifica.
removeChangeListener(propertyName, listener)
Parametro propertyName: nome di proprietà oppure null per l'evento di modifica globale. Tipo: String.
Parametro listener: listener di eventi da rimuovere. Tipo: Function.
Esempio:
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: esegue regole di convalida definite sulla proprietà value e aggiorna il valore della proprietà validationResults.
validate(recursive)
Parametro facoltativo recursive: indica se devono essere convalidati anche gli elementi di contenuto figlio. Se true, la proprietà validationResults sugli elementi di contenuto figlio viene aggiornata. Tipo: Boolean.
msls.ContentItemKind
msls.ContentItemKind
Specifica il tipo di un elemento di contenuto.
Valore |
Descrizione |
---|---|
collection |
Specifica un elemento di contenuto associato a una raccolta visuale. |
command |
Specifica un elemento di contenuto associato a un comando che richiama un metodo. |
details |
Specifica un elemento di contenuto associato a un oggetto quale un'entità. |
group |
Specifica un elemento di contenuto che contiene altri elementi di contenuto. |
popup |
Specifica l'elemento di contenuto radice di un popup in una schermata. |
screen |
Specifica l'elemento di contenuto radice di una schermata. |
tab |
Specifica l'elemento di contenuto radice di una scheda in una schermata. |
value |
Specifica un elemento di contenuto associato a un valore quale un numero, una data o una stringa. |
msls.DataService
msls.DataService(dataWorkspace)
Rappresenta un servizio dati.
Parametro facoltativo dataWorkspace: area di lavoro dati a cui appartiene questo servizio dati. Tipo: msls.DataWorkspace.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
dataService |
Ottiene il servizio dati a cui appartiene questo oggetto dettagli. |
|
dataWorkspace |
Ottiene l'area di lavoro dati che gestisce il servizio dati, se esistente. |
|
details |
Rappresenta i dettagli di un servizio dati. |
msls.DataService.Details |
hasChanges |
Ottiene un valore che indica se il servizio dati contiene modifiche (ossia se ci sono entità in attesa di aggiunta, modifica o eliminazione). |
Boolean |
oncontentchange |
Ottiene o imposta un gestore per l'evento contentchange, che viene chiamato ogni volta che un'entità appartenente al servizio dati viene modificata. |
Function |
owner |
Ottiene il servizio dati a cui appartiene questo oggetto dettagli. |
|
properties |
Ottiene il set di oggetti proprietà del servizio dati. |
msls.DataService.Details.PropertySet |
msls.DataServiceQuery
msls.DataServiceQuery(source, rootUri, queryParameters)
Rappresenta una query del servizio dati.
Parametro source: oggetto di origine disponibile per query.
Parametro facoltativo rootUri: URI di richiesta radice in caso di query del servizio dati radice (ad esempio una query di navigazione della raccolta). Tipo: String.
Parametro facoltativo queryParameters: parametri della query, se disponibili (ad esempio, una query schermata basata su un'operazione di query con parametri). Tipo: String.
msls.DataWorkspace
msls.DataWorkspace()
Rappresenta un'area di lavoro dati.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
dataWorkspace |
Ottiene l'area di lavoro dati a cui appartiene questo oggetto dettagli. |
|
details |
Rappresenta i dettagli di un'area di lavoro dati. |
msls.DataWorkspace.Details |
hasChanges |
Ottiene un valore che indica se l'area di lavoro dati contiene modifiche (ossia se ci sono entità in attesa di aggiunta, modifica o eliminazione). |
Boolean |
hasNestedChangeSets |
Ottiene un valore che indica se l'area di lavoro dati contiene set di modifiche annidati. |
Boolean |
NestedChangeSet(owner) |
Rappresenta un set di modifiche annidato. |
|
oncontentchange |
Ottiene o imposta un gestore per l'evento contentchange, che viene chiamato ogni volta che viene modificata un'entità appartenente a un servizio dati che appartiene a sua volta a questa area di lavoro dati. |
Function |
owner |
Ottiene l'area di lavoro dati a cui appartiene questo oggetto dettagli. |
|
properties |
Ottiene il set di oggetti proprietà dell'area di lavoro dati. |
msls.DataWorkspace.Details.PropertySet |
msls.Entity
msls.Entity(entitySet)
Rappresenta un'entità.
Parametro facoltativo entitySet: set di entità che dovrebbe contenere questa entità. Tipo: msls.EntitySet.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
details |
Rappresenta i dettagli di un'entità. |
msls.Entity.Details |
entity |
Ottiene l'entità a cui appartiene questo oggetto dettagli. |
|
entitySet |
Ottiene il set di entità che contiene l'entità. |
|
entityState |
Ottiene lo stato (da msls.EntityState) dell'entità. |
String |
hasEdits |
Ottiene un valore che indica se l'entità contiene modifiche (ossia, se è stata aggiunta e modificata oppure modificata o eliminata). |
Boolean |
owner |
Ottiene l'entità a cui appartiene questo oggetto dettagli. |
|
Properties |
Ottiene il set di oggetti proprietà dell'entità. |
msls.Entity.Details.PropertySet |
msls.EntityCollection
msls.EntityCollection(details, data)
Rappresenta una raccolta locale di entità.
Parametro details: oggetto dettagli dell'entità a cui appartiene questa raccolta di entità. Tipo: msls.Entity.Details.
Parametro data: oggetto che fornisce i dati della proprietà. Tipo: Object.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
oncollectionchange |
Ottiene o imposta un gestore per l'evento di modifica raccolta. |
Function |
msls.EntitySet
msls.EntitySet(dataService, entry)
Rappresenta un set di entità.
Parametro dataService: servizio dati a cui appartiene questo set di entità. Tipo: msls.DataService.
Parameter entry: voce di proprietà del set di entità.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
canDelete |
Ottiene un valore che indica se le entità in questo set di entità possono essere eliminate. |
Boolean |
canInsert |
Ottiene un valore che indica se le entità possono essere aggiunte a questo set di entità. |
Boolean |
canUpdate |
Ottiene un valore che indica se le entità in questo set di entità possono essere modificate. |
Boolean |
dataService |
Ottiene il servizio dati a cui appartiene questo set di entità. |
|
name |
Ottiene il nome di questo set di entità. |
String |
msls.EntityState
msls.EntityState
Specifica lo stato di un'entità.
Valore |
Descrizione |
---|---|
added |
L'entità è stata aggiunta. |
deleted |
L’entità è contrassegnata come eliminata. |
discarded |
L'entità è stata rimossa. |
modified |
L'entità è stata modificata. |
unchanged |
L'entità è invariata. |
msls.HeightSizingMode
msls.HeightSizingMode
Specifica in che modo viene calcolata l'altezza di un elemento di contenuto.
Valore |
Descrizione |
---|---|
FitToContent |
Specifica che l'altezza dell'elemento di contenuto è basata sull'altezza del relativo contenuto. |
FixedSize |
Specifica che l'altezza dell'elemento di contenuto è fissa. |
StretchToContainer |
Specifica che l'altezza dell'elemento di contenuto è basata sull'altezza disponibile fornita dall'elemento di contenuto padre. |
msls.HorizontalAlignment
msls.HorizontalAlignment
Specifica l'allineamento orizzontale di un elemento di contenuto.
Valore |
Descrizione |
---|---|
Left |
Specifica che l'elemento di contenuto è allineato a sinistra. |
Right |
Specifica che l'elemento di contenuto è allineato a destra. |
msls.MergeOption
msls.MergeOption
Specifica in che modo le entità caricate nell'area di lavoro dati vengono unite alle entità già presenti nell'area di lavoro dati.
Valore |
Descrizione |
---|---|
appendOnly |
Le entità non ancora presenti nell'area di lavoro dati vengono aggiunte all'area di lavoro. Se un'entità è già presente nell'area di lavoro dati, i valori correnti e originali delle proprietà dell'entità non vengono sovrascritti con i valori dell'origine dati. Questa è l'opzione di unione predefinita. |
unchangedOnly |
Le entità non ancora presenti nell'area di lavoro dati vengono aggiunte all'area di lavoro. Se un'entità è già presente nell'area di lavoro dati e il suo stato è invariato, i valori correnti e originali delle proprietà dell'entità vengono sovrascritti con i valori dell'origine dati. |
msls.MessageBoxButtons
msls.MessageBoxButtons
Specifica i pulsanti da visualizzare in una finestra di messaggio.
Valore |
Descrizione |
---|---|
ok |
Specifica il pulsante OK. |
okCancel |
Specifica i pulsanti OK e Annulla. |
yesNo |
Specifica i pulsanti Sì e No. |
yesNoCancel |
Specifica i pulsanti Sì, No e Annulla. |
msls.MessageBoxResult
msls.MessageBoxResult
Specifica il pulsante scelto in una finestra di messaggio.
Valore |
Descrizione |
---|---|
cancel |
Specifica che il pulsante Annulla è stato richiamato. |
no |
Specifica che il pulsante No è stato richiamato. |
ok |
Specifica che il pulsante OK è stato richiamato. |
yes |
Specifica che il pulsante Sì è stato richiamato. |
msls.NavigateBackAction
msls.NavigateBackAction
Specifica l'azione eseguita per tornare indietro da una schermata.
Valore |
Descrizione |
---|---|
cancel |
Specifica che le modifiche apportate nella schermata precedente sono state annullate. |
commit |
Specifica che è stato eseguito il commit all'origine dati delle modifiche apportate nella schermata precedente. |
msls.ObjectWithDetails
msls.ObjectWithDetails
Rappresenta un oggetto che contiene un oggetto details.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
details |
Rappresenta i dettagli di un oggetto con dettagli. |
msls.ObjectWithDetails.Details |
onchange |
Ottiene o imposta un gestore per l'evento di modifica, che viene chiamato ogni volta che cambia il valore di una proprietà osservabile su questo oggetto. |
Function |
owner |
Rappresenta l'oggetto a cui appartiene questo oggetto dettagli. |
|
properties |
Ottiene il set di oggetti proprietà delle proprietà del proprietario. |
msls.ObjectWithDetails.Details.PropertySet |
msls.PageKind
msls.PageKind
Specifica il tipo di pagina rappresentata da un elemento di contenuto.
Valore |
Descrizione |
---|---|
None |
Specifica che l'elemento di contenuto non rappresenta una pagina. |
Popup |
Specifica che l'elemento di contenuto rappresenta un popup visualizzato mediante un'opzione limite nidificata. |
Tab |
Specifica che l'elemento di contenuto rappresenta una scheda visualizzata nella barra delle schede della schermata. |
msls.Screen
Screen(dataWorkspace, modelId, screenParameters)
Rappresenta una schermata.
Parametro dataWorkspace: area di lavoro dati associata alla schermata. Tipo: msls.DataWorkspace.
Parametro modelId: identificatore dell'elemento di modello che definisce questa schermata. Tipo: String.
Parametro facoltativo screenParameters: oggetto che contiene i parametri della schermata. Tipo: Array.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
dataWorkspace |
Ottiene l'area di lavoro dati che fornisce i dati della schermata. |
|
description |
Ottiene o imposta la descrizione della schermata. |
String |
details |
Rappresenta i dettagli di una schermata. |
msls.Screen.Details |
displayName |
Ottiene o imposta il nome visualizzato della schermata. |
String |
owner |
Ottiene la schermata a cui appartiene questo oggetto dettagli. |
msls.Screen |
pages |
Ottiene una matrice degli elementi di contenuto radice delle schede e i popup della schermata. |
|
properties |
Ottiene il set di oggetti proprietà della schermata. |
msls.Screen.Details.PropertySet |
rootContentItem |
Ottiene l'elemento di contenuto radice della schermata. |
|
saveChangesTo |
Ottiene una matrice dei servizi dati modificabili per la schermata. |
|
screen |
Ottiene la schermata a cui appartiene questo oggetto dettagli. |
msls.Screen |
serverErrors |
Ottiene gli errori di convalida del server verificatisi all'ultimo salvataggio della schermata. |
|
startPage |
Ottiene l'elemento di contenuto radice della pagina iniziale della schermata. |
msls.Sequence
msls.Sequence()
Rappresenta una sequenza.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
Array |
Ottiene una matrice che rappresenta questa sequenza. |
Object |
msls.TransitionAnimationLevel
msls.TransitionAnimationLevel
Specifica il livello di animazione che si verifica durante le transizioni.
Valore |
Descrizione |
---|---|
Full |
Usa animazioni di transizione complete. |
Simple |
Usa animazioni di transizione più semplici che usano meno memoria del processore o alimentazione. |
msls.ValidationResult
msls.ValidationResult(property, message)
Rappresenta un risultato di convalida.
Parametro property: proprietà da associare al risultato di convalida. Tipo: msls.BusinessObject.Details.Property.
Parametro message: messaggio che descrive l'errore di convalida. Tipo: String.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
message |
Ottiene un messaggio che descrive l'errore di convalida. |
String |
property |
Ottiene la proprietà su cui si è verificato l'errore di convalida. |
msls.BusinessObject.Details.Property |
msls.VisualCollection
VisualCollection(screenDetails, loader)
Rappresenta una raccolta di dati visualizzata da una schermata.
Parametro screenDetails: oggetto dettagli della schermata a cui appartiene la proprietà della raccolta di schermate il cui valore è questa raccolta. Tipo: msls.Screen.Details.
Parametro loader: oggetto usato per caricare dati nella raccolta.
Membri
Membro |
Descrizione |
Tipo |
---|---|---|
canLoadMore |
Ottiene un valore che indica se questa raccolta è in grado di caricare più pagine di dati. |
Boolean |
count |
Ottiene il numero di elementi attualmente inclusi nella raccolta. |
Integer |
data |
Ottiene gli elementi attualmente inclusi nella raccolta. |
Array |
isLoaded |
Ottiene un valore che indica se questa raccolta ha caricato una o più pagine di dati. |
Boolean |
loadError |
Ottiene l'ultimo errore di caricamento verificatosi oppure restituisce null se non si è verificato alcun errore. |
String |
screen |
Ottiene la schermata a cui appartiene questa raccolta. |
|
selectedItem |
Ottiene o imposta l'elemento selezionato. |
|
state |
Ottiene lo stato corrente (da msls.VisualCollection.State) di questa raccolta. |
String |
Valori di VisualCollection.State:
Valore |
Descrizione |
---|---|
idle |
Specifica che la raccolta visuale non sta caricando dati. |
loading |
Specifica che la raccolta visuale sta caricando dati. |
loadingMore |
Specifica che la raccolta visuale sta caricando altri dati. |
msls.WidthSizingMode
msls.WidthSizingMode
Specifica in che modo viene calcolata la larghezza di un elemento di contenuto.
Valore |
Descrizione |
---|---|
FitToContent |
Specifica che la larghezza dell'elemento di contenuto è basata sulla larghezza del relativo contenuto. |
FixedSize |
Specifica che la larghezza dell'elemento di contenuto è fissa. |
StretchToContainer |
Specifica che la larghezza dell'elemento di contenuto è basata sulla larghezza disponibile fornita dall'elemento di contenuto padre. |
Vedere anche
Attività
Procedura: gestire gli eventi di schermata in un client mobile per un'applicazione LightSwitch
Procedura: modificare una schermata HTML tramite codice