Condividi tramite


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

Screen Created

Screen Before Apply Changes

Application Save

Screen Methods

Screen Content Render

Screen Content Post Render

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.BrowseCustomers.DeleteSelected_execute = function (screen) {
    screen.getCustomers().then(function (customers) {
        customers.deleteSelected();
    });
};

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.

myapp.MyScreen.Delete_canExecute = function (screen) {
    return (screen.MyEntity.Id != null);
};

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

msls.application

msls.BusinessObject

msls.CollectionChange

msls.CollectionChangeAction

msls.ContentItem

msls.ContentItemKind

msls.DataService

msls.DataServiceQuery

msls.DataWorkspace

msls.Entity

msls.EntityCollection

msls.EntitySet

msls.EntityState

msls.HeightSizingMode

msls.HorizontalAlignment

msls.MergeOperation

msls.MessageBoxButtons

msls.MessageBoxResults

msls.NavigateBackAction

msls.ObjectWithDetails

msls.PageKind

msls.Screen

msls.Sequence

msls.TransitionAnimationLevel

msls.ValidationResult

msls.VisualCollection

msls.WidthSizingMode

msls

(variabile globale) msls

Membri

_run

promiseOperation

relativeDates

relativeDateTimeOffsets

render

showMessageBox

showProgress

_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

applyChanges

cancelChanges

commitChanges

navigateBack

navigateHome

options

showScreen

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

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

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.

msls.BusinessObject

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.

msls.DataService

dataWorkspace

Ottiene l'area di lavoro dati che gestisce il servizio dati, se esistente.

msls.DataWorkspace

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.

msls.DataService

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.

msls.DataWorkspace

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.

msls.DataWorkspace

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.

msls.Entity

entitySet

Ottiene il set di entità che contiene l'entità.

msls.EntitySet

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.

msls.Entity

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

msls.DataService

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

yesNoCancel

Specifica i pulsanti , 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 è 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.

msls.ObjectWithDetails

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.

msls.DataWorkspace

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.

msls.ContentItem

properties

Ottiene il set di oggetti proprietà della schermata.

msls.Screen.Details.PropertySet

rootContentItem

Ottiene l'elemento di contenuto radice della schermata.

msls.ContentItem

saveChangesTo

Ottiene una matrice dei servizi dati modificabili per la schermata.

msls.DataService

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.

msls.ValidationResult

startPage

Ottiene l'elemento di contenuto radice della pagina iniziale della schermata.

msls.ContentItem

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.

msls.Screen

selectedItem

Ottiene o imposta l'elemento selezionato.

msls.Entity

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

Altre risorse

Schermate del client HTML per applicazioni LightSwitch