Compartilhar via


Formulário da Web e associação de dados do ASP.NET

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

Uma das tecnologias de programação da Web mais populares são os formulários da Web do ASP.NET, que associam dados aos controles. As Extensões do Desenvolvedor para o Microsoft Dynamics CRM 2015 apresentam uma série de mecanismos que facilitam a criação de um formulário da Web do ASP.NET, que é associado aos dados do Microsoft Dynamics 365.

Neste tópico

Usar o contexto CrmService e o controle LinqDataSource

Usar o controle CrmDataSource e FetchXML

Usar o controle CrmMetadataDataSource

Usar a associação de dados code-behind

Usar consultas salvas em um portal

Usar o contexto CrmService e o controle LinqDataSource

As práticas recomendadas para o uso das Extensões do Desenvolvedor para o Microsoft Dynamics CRM 2015 é executar a ferramenta de geração de código CrmSvcUtil.exe com a extensão Microsoft.Xrm.Client.CodeGeneration para gerar as classes de objeto de transferência de dados e contexto de serviço que correspondem ao modelo de entidade do Microsoft Dynamics 365. A classe de contexto de serviço inclui uma interface IQueryable para cada entidade do Dynamics 365 da solução. A classe de contexto de serviço pode ser facilmente usada com o controle LinqDataSource do ASP.NET para facilitar a associação declarativa de dados que não precisem de nenhum code-behind. Defina o atributo ContextTypeName do controle LinqDataSource para o nome do tipo do contexto de serviço e defina o atributo TableName para o nome da propriedade da entidade que deseja consultar. Depois que os dados do Microsoft Dynamics 365 forem associados ao controle da fonte de dados, é possível usar qualquer controle de associação de dados do ASP.NET para exibir os dados, incluindo repetidores e o controle GridView.

O código a seguir usa um controle LinqDataSource que será associado aos contatos do Dynamics 365, exibindo-os com um GridView. Esse mesmo exemplo pode ser visualizado em Passo a passo: Criar um aplicativo Web que se conecta ao Microsoft Dynamics CRM 2015 usando extensões do desenvolvedor.

<?xml version="1.0" encoding="utf-8"?>
<!--This example lists all contacts from the Microsoft Dynamics CRM system. -->
<asp:LinqDataSource ID="Contacts" ContextTypeName="Xrm.XrmServiceContext" TableName="ContactSet" runat="server" />
<asp:GridView DataSourceID="Contacts" AutoGenerateColumns="false" runat="server">
  <Columns>
    <asp:TemplateField HeaderText="First Name">
      <ItemTemplate>
        <asp:Label Text=''
        <%# Eval("firstname")%>' runat="server" />
      </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Last Name">
      <ItemTemplate>
        <asp:Label Text=''
        <%# Eval("lastname")%>' runat="server" />
      </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="City">
      <ItemTemplate>
        <asp:Label Text=''
        <%#Eval("address1_city") %>' runat="server" />            
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

Isso mostra os seguintes resultados em HTML.

Resultados HTML

Usar o controle CrmDataSource e FetchXML

Se você não deseja usar a ferramenta CrmSvcUtil.exe para gerar um objeto de transferência de dados e contexto de domínio, é possível usar Microsoft.Xrm.Client.CrmOrganizationServiceContext.

Os seguintes exemplos usam o FetchXml para consultar o Microsoft Dynamics 365 e o controle CrmDataSource para a associação aos dados do Dynamics 365. Os resultados são exibidos em um controle GridView. Observe que DataItem na exibição de grade é do tipo Entity. Para associar às colunas nos resultados, converta Container.DataItem em uma classe Entity ou associe-o às propriedades no indexador padrão usando Eval("[attribute-logical-name]").

<crm:CrmDataSource ID="Contacts" runat="server">
  <FetchXml>
    <fetch>
      <entity name="contact" />
    </fetch>
  </FetchXml>
</crm:CrmDataSource>
<asp:GridView DataSourceID="Contacts" AutoGenerateColumns="false" runat="server">
  <Columns>
    <asp:TemplateField HeaderText="Full Name">
      <ItemTemplate>
        <asp:Label Text=''
        <%# Eval("[fullname]") %>' runat="server" />
      </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Created On">
      <ItemTemplate>
        <asp:Label Text=''
        <%# Eval("[createdon]") %>' runat="server" />
      </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Last Modified">
      <ItemTemplate>
        <asp:Label Text=''
        <%# Eval("[modifiedon]") %>' runat="server" />
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>
<crm:CrmDataSource ID="Contacts" runat="server">
  <FetchXml>
    <fetch>
      <entity name="contact" />
    </fetch>
  </FetchXml>
</crm:CrmDataSource>

Isso mostra os seguintes resultados em HTML.

Resultados HTML

Usar o controle CrmMetadataDataSource

O controle CrmMetadataDataSource permite a associação de dados aos metadados do Microsoft Dynamics 365. A finalidade mais útil é associar uma lista suspensa a um conjunto de opções do Dynamics 365 usado em um formulário de dados que esteja coletando dados para serem armazenados no Dynamics 365.

O exemplo a seguir demonstra o uso do controle CrmMetadataDataSource para a associação a três conjuntos de opções separados na entidade case (incident) do Dynamics 365.

<h2>Incident Picklists</h2>
<h3>Priority</h3>
<crm:CrmMetadataDataSource ID="PriorityCodes" runat="server"
    EntityName="incident"
    AttributeName="prioritycode" />
<asp:DropDownList runat="server"
    DataSourceID="PriorityCodes"
    DataTextField="OptionLabel"
    DataValueField="OptionValue" />
<h3>Satisfaction Rating</h3>
<crm:CrmMetadataDataSource ID="SatisfactionCodes" runat="server"
    EntityName="incident"
    AttributeName="customersatisfactioncode" />
<asp:DropDownList runat="server"
    DataSourceID="SatisfactionCodes"
    DataTextField="OptionLabel"
    DataValueField="OptionValue" />

Isso mostra os seguintes resultados em HTML.

Resultados HTML

Usar a associação de dados code-behind

Os exemplos anteriores usaram os controles específicos da fonte de dados que implementam a associação declarativa de dados. A classe XrmServiceContext também pode ser usada com a associação de dados com as técnicas de code-behind. O contexto de serviço gerado pela ferramenta CrmSvcUtil.exe (com a extensão Microsoft.Xrm.Client.CodeGeneration) tem propriedades IQueryable para todas as entidades do Dynamics 365. É possível escrever consultas .NET LINQ (Language-Integrated Query) padrão ou usar expressões com essas propriedades e associá-las diretamente aos repetidores ou controles DataGrid.

Para obter mais informações:Passo a passo: Criar um aplicativo Web que se conecta ao Microsoft Dynamics CRM 2015 usando extensões do desenvolvedor

Usar consultas salvas em um portal

O Microsoft Dynamics 365 tem a capacidade de permitir ao cliente salvar uma consulta ou exibição para recuperação futura. A exibição apresenta a ordem e as definições das colunas, ordem de classificação e opções de filtro. É uma técnica conveniente permitir aos usuários configurar uma exibição no Dynamics 365; em seguida, um desenvolvedor pode usar o controle SavedQueryDataSource para a associação a essa exibição e usar um controle GridView com a propriedade AutoGenerateColumns ativada. Isso permite a um desenvolvedor soltar uma exibição do Dynamics 365 diretamente em uma página da Web e gerenciar o conteúdo da exibição no Microsoft Dynamics 365. Assim, os usuários de negócios podem alterar o conteúdo da exibição, sem a necessidade de ter um desenvolvedor para fazer uma alteração na página da Web e promover uma nova versão do site para o servidor de produção.

Para obter um exemplo disso, além de um exemplo de como gerar um formulário de entrada de dados a partir de uma consulta salva com o controle CrmEntityFormView, consulte Passo a passo: Criar um aplicativo Web que se conecta ao Microsoft Dynamics CRM 2015 usando extensões do desenvolvedor.

Confira Também

Guia do desenvolvedor para o portal do Microsoft Dynamics CRM 2015
Preparar-se para desenvolvimento do portal (Dynamics CRM 2015)
Gerenciar o conteúdo do portal (Dynamics CRM 2015)
Autenticação de portal (Dynamics CRM 2015)
Usar a ferramenta Website Copy (Dynamics CRM 2015)
Instruções passo a passo do portal do Dynamics CRM 2015

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais