Partilhar via


Cliente HTML com referência API

O artigo fornece uma visão geral das partes geradas da API JavaScript para os clientes LightSwitch HTML.

Pontos de entrada do código do cliente HTML

Cada entidade e tela, além do próprio aplicativo, expõe os pontos de entrada a seguir, onde você pode escrever um código JavaScript personalizado para seu aplicativo.

Entity Created

Screen Created

Screen Before Apply Changes

Application Save

Screen Methods

Screen Content Render

Screen Content Post Render

Entidade criada

myapp.[EntityName].created = function (entity) {};

Este método é chamado quando uma entidade é criada. O objeto de entidade cria uma propriedade gerada para cada propriedade relacionada no designer de entidade.

É tipicamente usado para definir valores de propriedade global para uma entidade. O exemplo a seguir define o valor inicial de uma propriedade assegurada de Boolean de uma entidade Patient:

myapp.Patient.created = function (entity) {
    entity.Insured = new Boolean();
    entity.Insured = 'true';
};

Para acessar esse ponto de entrada, abra o designer da entidade e escolha a perspectiva HTMLClient. Na lista Gravar Código, escolha criado.

Tela criada

myapp.[ScreenName].created = function (screen) {}

Este método é chamado a cada vez que uma tela é criada.

Este método é geralmente usado para definir os valores iniciais dos campos em uma tela. O exemplo a seguir define o valor do campo Estado na tela AddEditPatient:

myapp.AddEditPatient.created = function (screen) {
   screen.Patient.State = 'CA'
};

Para acessar esse ponto de entrada, abra o designer da tela. Na lista Gravar Código, escolha criado.

Tela anterior às alterações aplicadas

myapp.[ScreenName].beforeApplyChanges = function (screen) {};

Este método é chamado cada vez que uma operação salva for iniciada para uma tela. Se o método retornar true, a operação salva é verdadeira. Se retornar false, a operação salva é cancelada. Se o método retornar um objeto WinJs.Promise, a operação salva aguarda a confirmação para concluir (ou falha) antes de continuar.

Este método é geralmente usado para a lógica de validação de tela. O exemplo a seguir valida o campo PatientName:

myapp.AddEditPatient.beforeApplyChanges = function (screen) {
    if (screen.Patient.PatientName.indexOf('!') != -1) {
        screen.findContentItem("PatientName").validationResults = [
        new msls.ValidationResult(
        screen.Patient.details.properties.PatientName,
        "Patient Name cannot contain the character '!'.")
        ];
        return false;
    }
};

Para acessar esse ponto de entrada, abra o designer da tela. Na lista Gravar Código, escolha beforeApplyChanges.

Salvar aplicativo

myapp.onsavechanges = function () {}

Este método é chamado quando uma operação salva ocorre, após o método beforeApplyChanges retornar true.

Esse método é geralmente usado para adicionar lógica à operação de salvar, por exemplo, ao salvar em várias fontes de dados. O exemplo a seguir usa o objeto WinJs.Promise para personalizar o comando interno Salvar.

myapp.onsavechanges = function (e) {
    var promises = [];
    promises.push(myapp.activeDataWorkspace.NorthwindData.saveChanges());
    promises.push(myapp.activeDataWorkspace.ApplicationData.saveChanges());
    e.detail.promise = WinJS.Promise.join(promises);
};

Para acessar esse ponto de entrada, abra o designer da tela e escolha Gravar Código.

Métodos de tela

Cada método de tela na lista dos membros da tela do designer de tela tem dois métodos disponíveis: execute e canExecute. O método execute é geralmente usado para executar uma função quando um usuário clica em um botão. Geralmente, o método canExecute é usado para habilitar ou desabilitar um botão com base em uma condição.

Assinatura do método

Comentários

Exemplo

Função myapp.MyScreen.MyMethod_execute = (tela) { };

Este método é executado quando o botão MyMethod é clicado ou quando o método MyScreen.MyMethod() é chamado a partir do código.

O exemplo a seguir exclui o Customer selecionado em uma tela BrowseCustomers:

myapp.BrowseCustomers.DeleteSelected_execute = function (screen) {
    screen.getCustomers().then(function (customers) {
        customers.deleteSelected();
    });
};

Função myapp.MyScreen.MyMethod_canExecute = (tela) { };

Chamado antes de executar um método. Se essa função retornar false, o botão MyMethod será desabilitado. Se retornar true, o botão será habilitado.

O exemplo a seguir desativa um botão Delete para um registro que ainda não foi salvo.

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

Para acessar os métodos de tela, abra o menu de atalho do método no painel esquerdo do designer de tela e, em seguida, escolha o método.

Renderização de conteúdo de tela

myapp.[ScreenName].[ContentItemName]_render = function (element, contentItem)

Este método é chamado quando uma tela é criada e aplica-se somente a controles personalizados. Geralmente, esse método é usado para renderizar os conteúdos do controle em uma tela.

element é o elemento HTML do controle. Use $(element) para criar um objeto jQuery.

contentItem é um objeto msls.ContentItem que permite acessar o valor do item, databinding e resultados de validação.

O exemplo a seguir exibe um OrderDate para cada linha em um controle RowTemplate:

myapp.BrowseOrders.RowTemplate_render = function (element, contentItem) { 
 var orderDate = $("<p>" + contentItem.value.OrderDate + "</p>"); 
 orderDate.appendTo($(element)); 
};

Para acessar o método render, escolha um controle personalizado no designer de tela. Na lista Gravar Código, escolha ControlName_render.

Renderização posterior de conteúdo de tela

myapp.BrowseTable1Items.ContentItem2_postRender = function (element, contentItem) {};

Esse método é chamado após uma tela ser criada ou atualizada. Geralmente, esse método é usado para modificar os conteúdos ou a aparência de um controle na tela.

element é o elemento HTML do controle. Use $(element) para criar um objeto Jquery.

contentItem é um objeto msls.ContentItem que permite acessar o valor do item, databinding e resultados de validação.

O exemplo a seguir formata um Double para exibir duas casas decimais em um controle chamado Unit:

myapp.ViewItems.Unit_postRender = function (element, contentItem) {
    contentItem.dataBind("value", function (value) {
        if (value) {
            $(element).text(value.toFixed(2));
        }
    });
}

Para acessar o método postRender, escolha um controle no designer de tela. Na lista Gravar Código, escolha ControlName_postRender.

Modelo de objeto gerado

O LightSwitch gera um conjunto de APIs personalizado com base nos recursos existentes, que você pode usar ao escrever um código personalizado no cliente HTML. Cada fonte de dados, tabela, consulta e tela gera vários itens no conjunto de APIs.

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

(variável global) msls

Membros

_run

promiseOperation

relativeDates

relativeDateTimeOffsets

render

showMessageBox

showProgress

_run

_run([homeScreenId : String])

Inicia o aplicativo LightSwitch assincronamente. Esse método é chamado no arquivo default.html do aplicativo.

Tipo de retorno: WinJS.Promise

promiseOperation

promiseOperation(init(operations), [independent: Boolean])

Inicia uma nova operação e retorna um objeto de promessa quando a operação for concluída.

Tipo de retorno: WinJS.Promise

Exemplo:

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

Contém a implementação das datas relacionadas definidas globalmente.

Tipo de retorno: Date

Os métodos que iniciam com "end" retornam um horário 23:59:59. Os métodos que iniciam com "start" retornam um horário 00:00:00.

Método

Retorna

endOfDay()

A data e a hora do fim do dia atual.

endOfMonth()

A data e a hora do fim do mês atual.

endOfQuarter()

A data e a hora do fim do trimestre atual.

endOfWeek()

A data e a hora do fim da semana atual.

endOfYear()

A data e a hora do fim do ano atual.

now()

A data e a hora atuais.

startOfMonth()

A data e a hora do início do mês atual.

startOfQuarter()

A data e a hora do início do trimestre atual.

startOfWeek()

A data e a hora do início da semana atual.

startOfYear()

A data e a hora do início do ano atual.

today()

A data atual com horário de 00:00:00.

O exemplo de código a seguir retorna os valores startOfWeek e endOfWeek relacionados para uma data especificada:

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

Contém a implementação das datas relacionadas definidas globalmente, usando o deslocamento do UTC (Tempo Universal Coordenado).

Tipo de retorno: Date

Os métodos que iniciam com "end" retornam um horário 23:59:59. Os métodos que iniciam com "start" retornam um horário 00:00:00.

Método

Retorna

endOfDay()

A data e a hora do fim do dia atual.

endOfMonth()

A data e a hora do fim do mês atual.

endOfQuarter()

A data e a hora do fim do trimestre atual.

endOfWeek()

A data e a hora do fim da semana atual.

endOfYear()

A data e a hora do fim do ano atual.

now()

A data e a hora atuais.

startOfMonth()

A data e a hora do início do mês atual.

startOfQuarter()

A data e a hora do início do trimestre atual.

startOfWeek()

A data e a hora do início da semana atual.

startOfYear()

A data e a hora do início do ano atual.

today()

A data atual com horário de 00:00:00.

renderização

render(element: HTMLElement, contentItem: msls.ContentItem)

Renderiza a visualização de um item de conteúdo dentro de um elemento HTML raiz.

Exemplo:

myapp.BrowseOrders.RowTemplate_render = function (element, contentItem) {
    var orderDate = $("<p>").text(contentItem.value.Customer.CompanyName);
    orderDate.appendTo($(element));
};

showMessageBox

showMessageBox(message:String, [options])

Exibe uma caixa de mensagem ao usuário.

Tipo de retorno: WinJS.Promise

Uma promessa é retornada quando o usuário fecha a caixa de mensagem. Você pode acessar o resultado da caixa de mensagem (do tipo msls.MessageBoxResults) através da promessa retornada*.

Opções:

Parâmetro

Descrição

Padrão

title

Um título para a caixa de mensagem.

none

buttons

Um valor msls.MessageBoxButtons que especifica os botões para exibir.

ok

Exemplo:

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)

Exibe um indicador de progresso que previne o uso do aplicativo até uma promessa ser resolvida ou rejeitada.

Exemplo:

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

Representa o aplicativo LightSwitch ativo.

Dica

O objeto myapp é um atalho para msls.application.

Members

activeDataWorkspace

applyChanges

cancelChanges

commitChanges

navigateBack

navigateHome

options

showScreen

activeDataWorkspace

msls.application.activeDataWorkspace

Obtém o espaço de trabalho atual do aplicativo.

Exemplo:

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

Aplica assincronamente quaisquer alterações pendentes ao mesclar alterações aninhadas no conjunto de alteração principal ou ao salvar as alterações de nível superior, e permanece na tela atual. Chamar applyChanges salva todas as alterações do conjunto de alteração atual. Se apenas um conjunto de alteração existir, ele salva as alterações na fonte de dados. Se o conjunto de alteração atual for um escopo aninhado, ele confirma as alterações do conjunto de alteração principal.

Tipo de retorno: WinJS.Promise

Exemplo:

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

Desfaz todas as alterações no conjunto de alteração atual e navega de volta para a tela anterior.

Tipo de retorno: WinJS.Promise

Exemplo:

msls.application.commitChanges().then(null, function fail(e) {
    alert(e.message);
    msls.application.cancelChanges();
    throw e;
});

commitChanges

msls.application.commitChanges()

Confirma assincronamente quaisquer alterações pendentes ao mesclar alterações aninhadas no conjunto de alteração principal ou ao salvar as alterações de nível superior, em seguida, navega de volta para a tela anterior. Chamar commitChanges salva todas as alterações do conjunto de alteração atual, assim como applyChanges. A primeira validação é executada na tela e, se não houver erros, saveChanges é chamado.

Tipo de retorno: WinJS.Promise

Exemplo:

msls.application.commitChanges().then(null, function fail(e) {
    alert(e.message);
    msls.application.cancelChanges();
    throw e;
});

msls.application. navigateBack()

Solicita ao usuário a confirmação ou cancelamento de quaisquer alterações pendentes para navegar de volta para a tela anterior, ou para permanecer na tela atual.

Tipo de retorno: WinJS.Promise

msls.application. navigateHome()

Navega assincronamente para a tela da inicial.

Tipo de retorno: WinJS.Promise

opções

msls.application.options

Obtém os valores das opções que afetam o aplicativo LightSwitch. As opções devem ser definidas no arquivo default.htm, antes de chamar msls._run.

Opção

Tipo

Descrição

defaultMergeOption

String

Especifica como a mesclagem de resultados das consultas com dados armazenados em cache. Pode ser definido para um valor de msls.MergeOption.

disableUrlScreenParameters

Boolean

Especifica se uma chave primária é usada para formar a URL de uma instância de tela. O recurso indicador das telas do cliente HTML permite que um usuário copie a URL de uma instância de tela específica e retorne para aquela instância posteriormente. A URL tem base parcial na chave primária da entidade da tela, então se ela contiver informações sigilosas que deseje impedir os usuários de ver, desative o recurso indicador.

enableModalScrollRegions

Boolean

Indica quando usar uma região de rolamento independente dentro da visualização da janela restrita como caixas de diálogo e seletores. Se esta opção não estiver habilitada, a visualização da janela restrita se expandirá até seu tamanho completo, permitindo ao usuário rolar na janela do navegador principal para ver todo o conteúdo. Essa opção funciona melhor em alguns dispositivos.

showContentBehindDialog

Boolean

Indica se a tela de fundo atrás da caixa de diálogo deve estar visível. Isso não funciona com dispositivos pequenos, porque uma caixa de diálogo sempre usa a tela inteira. Ocultar a tela de fundo em dispositivos maiores pode melhorar o desempenho.

transitionAnimationLevel

String

Especifica o nível de animação que ocorre durante as transições. Uma simples animação pode melhorar o desempenho em alguns dispositivos. Essa opção pode ser definida para um valor de msls.TransitionAnimationLevel.

showScreen

msls.application.showScreen(screenId, [Array parameters],[options])

Navega assincronamente para uma tela específica.

Parâmetro screenId: O nome modelado de uma tela ou o item de modelo que define uma tela.

Parâmetro opcional parameters: Uma matriz de parâmetros de tela, se aplicável.

Parâmetro opcional options: Um objeto que fornece uma ou mais das seguintes opções:

  • beforeShown: Uma função que é chamada após um comportamento limitado ser aplicado, mas antes da tela ser exibida.

  • afterClosed: Uma função que é chamada após um comportamento limitado ser aplicado e a tela ser fechada.

Tipo de retorno: WinJS.Promise

Exemplo:

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

Representa um objeto comercial.

Membros

Membro

Descrição

Tipo

details

Representa os detalhes de um objeto comercial.

msls.BusinessObject.Details

owner

Obtém o objeto comercial que possui este objeto de detalhes.

msls.BusinessObject

properties

Obtém o conjunto de objetos de propriedade das propriedades dos proprietários.

msls.BusinessObject.Details.PropertySet

msls.CollectionChange

msls.CollectionChange(action, [items], [oldStartingIndex], [newStartingIndex])

Fornece dados para o evento de alteração de coleção.

Parâmetro action: A ação do tipo msls.CollectionChangeAction que causou o evento.

Parâmetro opcional items: A matriz de itens (coleção) afetada pela ação.

Parâmetro opcional oldStartingIndex: O índice no qual os itens foram removidos, se aplicável.

Parâmetro opcional newStartingIndex: O índice no qual os itens foram adicionados, se aplicável.

Membros

Membro

Descrição

Tipo

action

Obtém a descrição da ação que causou o evento.

String

items

Obtém a matriz de itens afetada pela ação.

Object

newStartingIndex

Obtém o índice no qual os itens foram adicionados, se aplicável.

Integer

oldStartingIndex

Obtém o índice no qual os itens foram removidos, se aplicável.

Integer

msls.CollectionChangeAction

msls.CollectionChangeAction

Especifica como uma coleção foi alterada.

Valor

Descrição

add

Especifica que os itens foram adicionados à coleção.

refresh

Especifica que a coleção inteira foi alterada.

remove

Especifica que os itens que foram removidos da coleção.

msls.ContentItem

msls.ContentItem(screenObject, model)

Representa o modelo de visualização de um item do conteúdo visualizado por uma tela. ContentItem está disponível como argumento contentItem nos métodos postRender e render.

Parâmetro screenObject: A tela (do tipo msls.Screen) que possui este item de conteúdo.

Parâmetro model: A definição modelada deste item de conteúdo.

Propriedades

application: Obtém o objeto do aplicativo ao qual o item pertence. Digite: msls.application.

bindingPath: Obtém o caminho de associação entre a propriedade "dados" (a fonte) e a propriedade "valor" (o destino). Digite: String.

Exemplo:

// 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: Obtém os itens de conteúdo filho que este item de conteúdo possui. Por exemplo, os filhos de uma Guia teriam todos os controles exibidos enquanto a guia estiver ativa. Tipo: Matriz de Object.

choiceList: Obtém a lista de escolhas estatísticas do valor deste item de conteúdo, se aplicável. Digite: Array.

Exemplo:

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: Obtém ou define uma coleção visual que fornece um conjunto dinâmico de opções do valor deste item de conteúdo. Digite: msls.VisualCollection.

Dica

Aplica-se somente ao controle Selecionador Modal de Detalhes.

O valor padrão é Auto. No momento da execução, o controle cria, dinamicamente, uma coleção visual que contém cada item no servidor. choicesSource pode ser atualizado para uma coleção visual mais específica, como os resultados de uma consulta. Observe que o controle somente inicializa a coleção visual uma vez por razões de desempenho.

commandItems: Obtém os itens de conteúdo de comando que este item de conteúdo possui. Tipo: Matriz de msls.ContentItem.

controlModel: Obtém o item de modelo que descreve o controle que visualiza este item de conteúdo. Digite: Object.

data: Obtém o objeto de dados de origem com os quais o details e as propriedades value estão associados. Digite: Object.

description: Obtém ou define a descrição deste item de conteúdo. Digite: String.

details: Obtém o objeto de propriedade Details do valor que este item de conteúdo representa, usando um caminho de associação que deriva-se da propriedade bindingPath. Digite: msls.BusinessObject.Details.Property.

displayError: Obtém o erro de exibição que ocorreu no controle, se houver. Digite: String.

displayName: Obtém ou define o nome de exibição deste item de conteúdo. Digite: String.

heightSizingMode: Obtém o modo de redimensionamento de altura deste item de conteúdo. Digite: msls.HeightSizingMode (String).

horizontalAlignment: Obtém o alinhamento horizontal deste item de conteúdo. Digite: msls.HorizontalAlignment (String).

isEnabled: Obtém um valor indicando se o controle deste item de conteúdo deve ser habilitado. Digite: Boolean.

isLoading: Obtém um valor indicando se o controle deste item de conteúdo deve ser exibido no estado sendo carregado. Digite: Boolean.

isReadOnly: Obtém um valor indicando se o controle deste item de conteúdo deve ser de "somente leitura". Digite: Boolean.

isVisible: Obtém ou define um valor indicando se o controle deste item de conteúdo deve ficar visível. Digite: Boolean.

kind: Obtém o tipo deste item de conteúdo. Digite: msls.ContentItemKind (String).

Exemplo:

// 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: Obtém o item de modelo que descreve este item de conteúdo. Digite: Object.

name: Obtém o nome deste item de conteúdo. Digite: String.

onchange: Obtém ou define um manipulador para o evento de alteração, que é chamado a qualquer momento em que o valor de uma propriedade observável neste objeto seja alterada. Digite: Function.

pageKind: Obtém o tipo de página (None, Popup, Tab) deste item de conteúdo. Digite: msls.PageKind (String).

parent: Obtém o item de conteúdo principal que possui este item de conteúdo. Digite: msls.ContentItem.

properties: Obtém o conjunto de propriedades de controle específico usadas para configurar a visualização deste item de conteúdo. Digite: Object.

screen: Obtém a tela que produziu este item de conteúdo. Digite: msls.Screen.

stringValue: Obtém ou define a representação da cadeia de caracteres da propriedade value. É preferível utilizar essa propriedade ao invés da propriedade value ao obter um valor a ser exibido na tela. Digite: String.

validationResults: Obtém ou define o conjunto atual de resultados de validação deste item de conteúdo. Tipo: Matriz de msls.ValidationResult.

Inclui quaisquer resultados que foram definidos explicitamente nesta propriedade, além de quaisquer resultados que foram adicionados pela validação automática ou chamados pelo método validate(). Observe que os resultados de validação não são exibidos até que o usuário modifique a propriedade na interface do usuário ou tente salvar.

Exemplo:

screen.findContentItem("OrderDate").validationResults = [new msls.ValidationResult(screen.Order.details.properties.OrderDate, "Invalid date")];

value: Obtém ou define o valor que este item de conteúdo representa. Digite: Object.

valueModel: Obtém o item de modelo que descreve o valor deste item de conteúdo. Digite: Object.

widthSizingMode: Obtém o modo de redimensionamento da largura deste item de conteúdo. Digite: msls.WidthSizingMode (String).

Métodos

addChangeListener: Adiciona um evento de alteração.

addChangeListener(propertyName, listener)

Parâmetro propertyName: Um nome de propriedade, ou uma referência ao evento de alteração global. Digite: String.

Parâmetro listener: A função para chamar quando o evento de alteração for acionado. Digite: Function.

Exemplo:

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: Associa a uma fonte que é identificada por um caminho de associação (por exemplo, value.unitPrice).

dataBind(bindingPath, callback)

Parâmetro bindingPath: Um caminho de associação delimitado que descreve o caminho até a fonte. Digite: String.

Parâmetro callback: Uma função que é chamada quando a fonte é alterada. Digite: Function.

Exemplo:

myapp.ViewCustomer.Details_postRender = function (element, contentItem) { 
    contentItem.dataBind("screen.Customer.Name", function (value) { 
        contentItem.screen.details.displayName = value; 
    }); 
};

dispatchChange: Aciona um evento de alteração para a propriedade.

dispatchChange(propertyName)

Parâmetro propertyName: Um nome de propriedade. Digite: String.

Exemplo:

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: Procura recursivamente por um item de conteúdo a partir deste item de conteúdo.

findItem(contentItemName)

Parâmetro contentItemName: O nome único de um item de conteúdo. Digite: String.

Retorno msls.ContentItem: O item de conteúdo com o nome especificado, se encontrado; caso contrário, um valor falso.

handleViewDispose: Define um manipulador para o evento de descarte de visualização.

handleViewDispose(handler)

Parâmetro: handler: Uma função chamada quando a visualização do item de conteúdo é descartada. Digite: Function.

Exemplo:

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 este item de conteúdo atual tem erros de validação.

hasValidationErrors(recursive)

Parâmetro recursive: Indica se os itens de conteúdo filho também são verificados. Digite: Boolean.

Retorno Boolean: verdadeiro se houver erros de validação; caso contrário, falso.

Exemplo:

if (screen.findContentItem("name").hasValidationErrors()) {
        screen.findContentItem("name").validationResults = [];
    }

removeChangeListener: Remove um ouvinte de evento de alteração.

removeChangeListener(propertyName, listener)

Parâmetro propertyName: Um nome de propriedade, ou uma referência ao evento de alteração global. Digite: String.

Parâmetro listener: O ouvinte do evento que deve ser removido. Digite: Function.

Exemplo:

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: Executa as regras de validação definidas na propriedade value e atualiza o valor da propriedade validationResults.

validate(recursive)

Parâmetro opcional recursive: Indica se os itens de conteúdo filho também são verificados. Se verdadeiro, a propriedade validationResults nos itens de conteúdo filho são atualizados. Digite: Boolean.

msls.ContentItemKind

msls.ContentItemKind

Especifica o tipo do item de conteúdo.

Valor

Descrição

collection

Especifica um item de conteúdo que é associado à coleção visual.

command

Especifica um item de conteúdo que é associado ao comando que invoca um método.

details

Especifica um item de conteúdo que é associado a um objeto, assim como a uma entidade.

group

Especifica um item de conteúdo que contém outros itens de conteúdo.

popup

Especifica o item de conteúdo raiz de um pop-up em uma tela.

screen

Especifica o item de conteúdo raiz de uma tela.

tab

Especifica o item de conteúdo raiz de uma guia em uma tela.

value

Especifica um item de conteúdo que é associado a um valor, assim como a um número, um data ou uma cadeia de caracteres.

msls.DataService

msls.DataService(dataWorkspace)

Representa um serviço de dados.

Parâmetro opcional dataWorkspace: O espaço de trabalho de dados que possui este serviço de dados. Digite: msls.DataWorkspace.

Membros

Membro

Descrição

Tipo

dataService

Obtém o serviço de dados ao qual pertence este objeto de detalhes.

msls.DataService

dataWorkspace

Obtém um espaço de trabalho de dados que gerencia o serviço de dados, se houver.

msls.DataWorkspace

details

Representa os detalhes de um serviço de dados.

msls.DataService.Details

hasChanges

Obtém um valor que indica se um serviço de dados tem alterações (ou seja, se há entidades com adição, modificação ou exclusão pendentes).

Boolean

oncontentchange

Obtém ou define um manipulador do evento contentchange, que é chamado a qualquer momento, qualquer propriedade de entidade, através das alterações do serviço de dados.

Function

owner

Obtém o serviço de dados ao qual pertence este objeto de detalhes.

msls.DataService

properties

Obtém o conjunto de objetos de propriedade do serviço de dados.

msls.DataService.Details.PropertySet

msls.DataServiceQuery

msls.DataServiceQuery(source, rootUri, queryParameters)

Representa uma consulta de serviço de dados.

Parâmetro source: Um objeto consultável de origem.

Parâmetro opcional rootUri: A raiz requisita URI se for uma consulta de serviço de dados raiz (por exemplo, uma consulta de navegação de coleção). Digite: String.

Parâmetro opcional queryParameters: Os parâmetros da consulta, se disponível (por exemplo, uma consulta de tela com base em uma operação de consulta com parâmetros). Digite: String.

msls.DataWorkspace

msls.DataWorkspace()

Representa um espaço de trabalho de dados.

Membros

Membro

Descrição

Tipo

dataWorkspace

Obtém o espaço de trabalho de dados ao qual pertence este objeto de detalhes.

msls.DataWorkspace

details

Representa os detalhes de um espaço de trabalho de dados.

msls.DataWorkspace.Details

hasChanges

Obtém um valor que indica se um espaço de trabalho tem alterações (ou seja, se há entidades com adição, modificação ou exclusão pendentes).

Boolean

hasNestedChangeSets

Obtém um valor que indica se o espaço de trabalho de dados tem quaisquer conjuntos de alteração aninhados.

Boolean

NestedChangeSet(owner)

Representa um conjunto de alteração aninhada.

oncontentchange

Obtém ou define um manipulador do evento contentchange, que é chamado a qualquer momento, sempre que qualquer entidade de propriedade de qualquer serviço de dados desse espaço de trabalho de dados é alterada.

Function

owner

Obtém o espaço de trabalho de dados ao qual pertence este objeto de detalhes.

msls.DataWorkspace

properties

Obtém o conjunto de objetos de propriedade do espaço de trabalho de dados.

msls.DataWorkspace.Details.PropertySet

msls.Entity

msls.Entity(entitySet)

Representa uma entidade.

Parâmetro opcional entitySet: Um conjunto de entidades que deve conter esta entidade. Digite: msls.EntitySet.

Membros

Membro

Descrição

Tipo

details

Representa os detalhes de uma entidade.

msls.Entity.Details

entity

Obtém a entidade que possui este objeto de detalhes.

msls.Entity

entitySet

Obtém o conjunto de entidades que contém a entidade.

msls.EntitySet

entityState

Obtém o estado (do msls.EntityState) da entidade.

String

hasEdits

Obtém o valor que indica se a entidade tem edições (ou seja, se foi adicionada e tem sido editada, modificada ou excluída).

Boolean

owner

Obtém a entidade que possui este objeto de detalhes.

msls.Entity

Properties

Obtém o conjunto de objetos de propriedade da entidade.

msls.Entity.Details.PropertySet

msls.EntityCollection

msls.EntityCollection(details, data)

Representa a coleção local das entidades.

Parâmetro details: O objeto de detalhes da entidade que possui esta coleção de entidade. Digite: msls.Entity.Details.

Parâmetro data: Um objeto que fornece dados de propriedade. Digite: Object.

Membros

Membro

Descrição

Tipo

oncollectionchange

Obtém ou define um manipulador do evento de alteração da coleção.

Function

msls.EntitySet

msls.EntitySet(dataService, entry)

Representa um conjunto de entidades.

Parâmetro dataService: O serviço de dados que possui este conjunto de entidades. Digite: msls.DataService.

Parâmetro entry: Uma entrada de propriedade de conjunto de entidades.

Membros

Membro

Descrição

Tipo

canDelete

Obtém um valor que indica se as entidades neste conjunto de entidades podem ser excluídas.

Boolean

canInsert

Obtém um valor que indica se as entidades podem ser adicionadas neste conjunto de entidades.

Boolean

canUpdate

Obtém um valor que indica se as entidades neste conjunto de entidades podem ser modificadas.

Boolean

dataService

Obtém o serviço de dados que possui este conjunto de entidades.

msls.DataService

name

Obtém o nome deste conjunto de entidades.

String

msls.EntityState

msls.EntityState

Especifica o estado de uma entidade.

Valor

Descrição

added

A entidade está adicionada.

deleted

A entidade está marcada como excluída.

discarded

A entidade está descartada.

modified

A entidade está modificada.

unchanged

A entidade está inalterada.

msls.HeightSizingMode

msls.HeightSizingMode

Especifica como a altura de um item de conteúdo é calculada.

Valor

Descrição

FitToContent

Especifica que a altura do item de conteúdo está com base na altura de seu conteúdo.

FixedSize

Especifica que a altura do item de conteúdo está corrigida.

StretchToContainer

Especifica que a altura do item de conteúdo tem base na altura disponível fornecida pelo item de conteúdo principal.

msls.HorizontalAlignment

msls.HorizontalAlignment

Especifica o alinhamento horizontal de um item de conteúdo.

Valor

Descrição

Left

Especifica que o item de conteúdo está alinhado à esquerda.

Right

Especifica que o item de conteúdo está alinhado à direita.

msls.MergeOption

msls.MergeOption

Especifica como as entidades que estão sendo carregadas no espaço de trabalho de dados estão mescladas com entidades que já estão lá.

Valor

Descrição

appendOnly

Entidades que não existem no espaço de trabalho de dados são adicionadas a ele. Se uma entidade já está no espaço de trabalho de dados, os valores atuais e originais das propriedades da entidade não são sobrescritos com os valores da fonte de dados. Essa é a opção de mesclagem padrão.

unchangedOnly

Entidades que não existem no espaço de trabalho de dados são adicionadas a ele. Se uma entidade já está no espaço de trabalho de dados e seu estado for inalterado, os valores atuais e originais das propriedades da entidade são sobrescritos com os valores da fonte de dados.

msls.MessageBoxButtons

msls.MessageBoxButtons

Especifica os botões para exibir em uma caixa de mensagem.

Valor

Descrição

ok

Especifica o botão OK.

okCancel

Especifica os botões OK e Cancelar.

yesNo

Especifica os botões Sim e Não.

yesNoCancel

Especifica os botões Sim, Não e Cancelar.

msls.MessageBoxResult

msls.MessageBoxResult

Especifica o botão em uma caixa de mensagem que foi selecionada.

Valor

Descrição

cancel

Especifica que o botão Cancelar foi invocado.

no

Especifica que o botão Não foi invocado.

ok

Especifica que o botão OK foi invocado.

yes

Especifica que o botão Sim foi invocado.

msls.NavigateBackAction

msls.NavigateBackAction

Especifica que a ação tomada ao navegar de volta de uma tela.

Valor

Descrição

cancel

Especifica que as alterações na tela anterior foram canceladas.

commit

Especifica que as alterações na tela anterior foram confirmadas na fonte de dados.

msls.ObjectWithDetails

msls.ObjectWithDetails

Representa um objeto que contém um objeto details.

Membros

Membro

Descrição

Tipo

details

Representa os detalhes de um objeto com detalhes.

msls.ObjectWithDetails.Details

onchange

Obtém ou define um manipulador para o evento de alteração, que é chamado a qualquer momento em que o valor de uma propriedade observável neste objeto é alterado.

Function

owner

Representa o objeto que possui este objeto de detalhes.

msls.ObjectWithDetails

properties

Obtém o conjunto de objetos de propriedade das propriedades dos proprietários.

msls.ObjectWithDetails.Details.PropertySet

msls.PageKind

msls.PageKind

Especifica o tipo de página representada por um item de conteúdo.

Valor

Descrição

None

Especifica que o item de conteúdo não representa uma página.

Popup

Especifica que o item de conteúdo representa um pop-up exibido usando uma opção de associação aninhada.

Tab

Especifica que o item de conteúdo representa uma guia que é exibida na barra de guias da tela.

msls.Screen

Screen(dataWorkspace, modelId, screenParameters)

Representa uma tela.

Parâmetro dataWorkspace: O espaço de trabalho de dados associado com a tela. Digite: msls.DataWorkspace.

Parâmetro modelId: O identificador do item de modelo que define esta tela. Digite: String.

Parâmetro opcional screenParameters: Um objeto que contém parâmetros para a tela. Digite: Array.

Membros

Membro

Descrição

Tipo

dataWorkspace

Obtém o espaço de trabalho que fornece os dados da tela.

msls.DataWorkspace

description

Obtém ou define a descrição da tela.

String

details

Representa os detalhes de uma tela.

msls.Screen.Details

displayName

Obtém ou define o nome de exibição de uma tela.

String

owner

Obtém a tela que possui este objeto de detalhes.

msls.Screen

pages

Obtém uma matriz dos itens de conteúdo raiz das guias de tela e pop-ups.

msls.ContentItem

properties

Obtém o conjunto de objetos de propriedade da tela.

msls.Screen.Details.PropertySet

rootContentItem

Obtém o item de conteúdo raiz da tela.

msls.ContentItem

saveChangesTo

Obtém uma matriz de serviços de dados editável da tela.

msls.DataService

screen

Obtém a tela que possui este objeto de detalhes.

msls.Screen

serverErrors

Obtém os erros de validação do servidor que ocorreram quando a tela foi salva pela última vez.

msls.ValidationResult

startPage

Obtém o item de conteúdo raiz da página inicial da tela.

msls.ContentItem

msls.Sequence

msls.Sequence()

Representa uma sequência.

Membros

Membro

Descrição

Tipo

Array

Obtém uma matriz que representa esta sequência.

Object

msls.TransitionAnimationLevel

msls.TransitionAnimationLevel

Especifica o nível de animação que ocorre durante as transições.

Valor

Descrição

Full

Usa animações de transição completa.

Simple

Usa animações de transição simples que têm menor processamento ou intensidade de potência.

msls.ValidationResult

msls.ValidationResult(property, message)

Representa um resultado de validação.

Parâmetro property: Uma propriedade para associar com o resultado de validação. Digite: msls.BusinessObject.Details.Property.

Parâmetro message: Uma mensagem que descreve o erro de validação. Digite: String.

Membros

Membro

Descrição

Tipo

message

Obtém uma mensagem que descreve o erro de validação.

String

property

Obtém uma propriedade no erro de validação que ocorreu.

msls.BusinessObject.Details.Property

msls.VisualCollection

VisualCollection(screenDetails, loader)

Representa uma coleção de dados que é exibida por uma tela.

Parâmetro screenDetails: O objeto de detalhes da tela que possui a propriedade de coleção da tela, cujo valor é esta coleção. Digite: msls.Screen.Details.

Parâmetro loader: Um objeto que é usado para carregar dados em uma coleção.

Membros

Membro

Descrição

Tipo

canLoadMore

Obtém um valor que indica se esta coleção está apta para carregar mais páginas de dados.

Boolean

count

Obtém o número de itens que estão atualmente nesta coleção.

Integer

data

Obtém os itens que estão atualmente nesta coleção.

Array

isLoaded

Obtém um valor que indica se esta coleção carregou uma ou mais páginas de dados.

Boolean

loadError

Obtém o último erro de carregamento que ocorreu ou retorna nulo, se nenhum erro ocorreu.

String

screen

Obtém a tela que possui esta coleção.

msls.Screen

selectedItem

Obtém ou define o item selecionado atualmente.

msls.Entity

state

Obtém o estado atual (do msls.VisualCollection.State) desta coleção.

String

VisualCollection.State valores:

Valor

Descrição

idle

Especifica que a coleção visual não está carregando dados atualmente.

loading

Especifica que a coleção visual está carregando dados atualmente.

loadingMore

Especifica que a coleção visual está carregando mais dados atualmente.

msls.WidthSizingMode

msls.WidthSizingMode

Especifica como a largura de um item de conteúdo é calculada.

Valor

Descrição

FitToContent

Especifica que a largura do item de conteúdo está com base na largura de seu conteúdo.

FixedSize

Especifica que a largura do item de conteúdo está corrigida.

StretchToContainer

Especifica que a largura do item de conteúdo está com base na largura disponível fornecida pelo item de conteúdo principal.

Consulte também

Tarefas

Como tratar eventos de tela em um cliente móvel para um aplicativo do LightSwitch

Como modificar uma tela HTML usando código

Outros recursos

Telas do cliente HTML para aplicativos do LightSwitch