Partager via


Formulaires Web ASP.NET et liaison de données

 

Date de publication : novembre 2016

S’applique à : Dynamics CRM 2015

L’une des technologies de programmation Web les plus populaires est constituée des formulaires Web ASP.NET, qui lient les données aux contrôles. Les extensions pour développeur de Microsoft Dynamics CRM 2015 contiennent un certain nombre de mécanismes qui facilitent la création d’un formulaire Web ASP.NET lié aux données Microsoft Dynamics 365.

Contenu de la rubrique

Utiliser le contexte CrmService et le contrôle LinqDataSource

Utiliser le contrôle CrmDataSource et FetchXML

Utiliser le contrôle CrmMetadataDataSource

Utiliser la liaison de données code-behind

Utiliser les requêtes enregistrées d’un portail

Utiliser le contexte CrmService et le contrôle LinqDataSource

La pratique recommandée en matière d’utilisation des extensions pour développeur de Microsoft Dynamics CRM 2015 consiste à exécuter l’outil de génération de code CrmSvcUtil.exe, avec l’extension Microsoft.Xrm.Client.CodeGeneration, pour générer les classes d’objets de contexte de service et de transfert des données qui correspondent à votre modèle d’entité Microsoft Dynamics 365. La classe de contexte de service comprend une interface IQueryable pour chaque entité Dynamics 365 de votre solution. La classe de contexte de service peut facilement être utilisée avec le contrôle ASP.NETLinqDataSource pour faciliter la liaison de données déclarative qui n’a pas besoin de code-behind. Vous définissez l’attribut ContextTypeName du contrôle LinqDataSource sur le nom de type de votre contexte de service et définissez l’attribut TableName sur le nom de propriété de l’entité que vous voulez interroger. Une fois les données Microsoft Dynamics 365 liées au contrôle de code source des données, vous pouvez utiliser n’importe quel contrôle lié aux données ASP.NET pour extraire et afficher les données, y compris les répéteurs et le contrôle GridView.

Le code suivant utilise un contrôle LinqDataSource pour établir une liaison avec les contacts Dynamics 365 et les afficher avec un GridView. Ce même exemple peut être vu dans Procédure pas à pas : créer une application Web qui se connecte à Microsoft Dynamics CRM 2015 à l’aide des extensions développeur.

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

Les résultats en HTML se présentent de la façon suivante.

Résultats HTML

Utiliser le contrôle CrmDataSource et FetchXML

Si vous ne souhaitez pas utiliser l’outil CrmSvcUtil.exe pour générer un contexte de domaine et un objet de transfert de données, vous pouvez utiliser le Microsoft.Xrm.Client.CrmOrganizationServiceContext.

L’exemple suivant utilise FetchXml pour interroger Microsoft Dynamics 365 et le contrôle CrmDataSource pour établir une liaison aux données Dynamics 365. Les résultats sont affichés dans un contrôle GridView. Notez que DataItem dans la vue grille est de type Entity. Pour établir une liaison avec les colonnes des résultats, vous pouvez effectuer un cast de Container.DataItem en une classe Entity ou vous pouvez établir une liaison avec les propriétés dans l’indexeur par défaut en utilisant 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>

Les résultats en HTML se présentent de la façon suivante.

Résultats HTML

Utiliser le contrôle CrmMetadataDataSource

Le contrôle CrmMetadataDataSource permet la liaison de données avec les métadonnées Microsoft Dynamics 365. L’objectif le plus utile est de lier une liste déroulante à un groupe d’options Dynamics 365 que vous utilisez dans un formulaire de données qui recueille les données à stocker dans Dynamics 365.

L’exemple suivant illustre l’utilisation du contrôle CrmMetadataDataSource pour établir une liaison avec trois groupes d’options distincts de l’entité Dynamics 365case (incident).

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

Les résultats en HTML se présentent de la façon suivante.

Résultats HTML

Utiliser la liaison de données code-behind

Les exemples précédents utilisaient des contrôles de source de données spécifiques qui implémentent la liaison de données déclarative. La classe XrmServiceContext peut aussi être utilisée avec la liaison de données à l’aide des techniques code-behind. Le contexte de service généré par l’outil CrmSvcUtil.exe l’outil (avec l’extension Microsoft.Xrm.Client.CodeGeneration ) a les propriétés IQueryable pour toutes les entités Dynamics 365. Vous pouvez écrire des requêtes Language-Integrated Query (LINQ) .NET standard ou utiliser des expressions avec ces propriétés et les lier directement à vos répéteurs ou contrôles DataGrid.

Pour plus d'informations :Procédure pas à pas : créer une application Web qui se connecte à Microsoft Dynamics CRM 2015 à l’aide des extensions développeur

Utiliser les requêtes enregistrées d’un portail

Microsoft Dynamics 365 a la possibilité de permettre au client d’enregistrer une requête ou une vue pour une récupération ultérieure. La vue a les définitions et l’ordre des colonnes, l’ordre de tri et les options de filtre. Il s’agit d’une technique pratique pour permettre aux utilisateurs de configurer une vue dans Dynamics 365 et un développeur peut utiliser le contrôle SavedQueryDataSource pour le lier à la vue et utiliser un contrôle GridView avec la propriété AutoGenerateColumns activée. Cela permet à un développeur de déposer une vue Dynamics 365 directement dans une page Web et que le contenu soit géré dans Microsoft Dynamics 365. Les utilisateurs professionnels peuvent ensuite modifier le contenu de la vue sans recourir à un développeur pour créer une modification de page Web et promouvoir une nouvelle version du site Web sur le serveur de production.

Pour en obtenir un exemple, ainsi qu’un exemple de la façon de générer un formulaire d’entrée de données à partir d’une requête enregistrée à l’aide du contrôle CrmEntityFormView, voir Procédure pas à pas : créer une application Web qui se connecte à Microsoft Dynamics CRM 2015 à l’aide des extensions développeur.

Voir aussi

Guide destiné aux développeurs du portail pour Microsoft Dynamics CRM 2015
Préparer le développement du portail (Dynamics CRM 2015)
Gérer le contenu du portail (Dynamics CRM 2015)
Authentification du portail (Dynamics CRM 2015)
Utiliser l’outil Copie de site Web (Dynamics CRM 2015)
Procédures pas-à-pas du portail pour Dynamics CRM 2015

© 2017 Microsoft. Tous droits réservés. Copyright