Delen via


ASP.NET-webformulieren en gegevensbinding

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

Een van de populairste webprogrammeringstechnologieën is ASP.NET-webformulieren, waarin gegevens aan besturingselementen worden gekoppeld. Uitbreidingen voor ontwikkelaars voor Microsoft Dynamics CRM 2015 bevat een aantal mechanismen waarmee het gemakkelijk is om een ASP.NET-webformulier te maken waarin Microsoft Dynamics 365-gegevens worden gebonden.

In dit onderwerp

De CrmService-context en het LinqDataSource-besturingselement gebruiken

CrmDataSource-besturingselement en FetchXML gebruiken

Het besturingselement CrmMetadataDataSource gebruiken

Gegevensbinding met code-behind gebruiken

Opgeslagen query's in een portal gebruiken

De CrmService-context en het LinqDataSource-besturingselement gebruiken

De aanbevolen procedure voor het gebruik van Developer-uitbreidingen voor Microsoft Dynamics CRM 2015 is via het uitvoeren van het CrmSvcUtil.exe-hulpprogramma voor codegeneratie, met de extensie Microsoft.Xrm.Client.CodeGeneration, om de servicecontext en objectklassen voor gegevensoverdracht te genereren die overeenkomen met uw Microsoft Dynamics 365-entiteitsmodel. De servicecontextklasse bevat een IQueryable-interface voor elke entiteit Dynamics 365 in uw oplossing. De servicecontextklasse kan op eenvoudige wijze worden gebruikt met het ASP.NETLinqDataSource-besturingselement om declaratieve gegevensbinding te vergemakkelijken zonder dat code-behind is vereist. U stelt het kenmerk ContextTypeName van het LinqDataSource-besturingselement in op de typenaam van uw servicecontext en het kenmerk TableName op de naam van de eigenschap voor de entiteit waarop u een query wilt uitvoeren. Nadat de Microsoft Dynamics 365-gegevens aan het gegevensbronbesturingselement zijn gekoppeld, kunt u een willekeurig ASP.NET-besturingselement met gegevensbinding gebruiken om de gegevens met repeaters en het GridView-besturingselement te extraheren en weer te geven.

De volgende code gebruikt een LinqDataSource-besturingselement om de Dynamics 365-contactpersonen te binden en weer te geven met een GridView. Hetzelfde voorbeeld is te vinden in Overzicht: Een webtoepassing maken die verbinding met Microsoft Dynamics CRM 2015 maakt met behulp van uitbreidingen voor ontwikkelaars.

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

Hiermee worden de volgende resultaten weergegeven in HTML.

HTML-resultaten

CrmDataSource-besturingselement en FetchXML gebruiken

Als u niet het hulpprogramma CrmSvcUtil.exe wilt gebruiken om een domeincontext en object voor gegevensoverdracht wilt maken, kunt u de Microsoft.Xrm.Client.CrmOrganizationServiceContext gebruiken.

Het volgende voorbeeld gebruikt FetchXml om een query uit te voeren op Microsoft Dynamics 365 en het besturingselement CrmDataSource voor binding aan Dynamics 365. De resultaten worden weergegeven in een besturingselement GridView. Overigens is het DataItem in de rasterweergave van het type Entity. Als u wilt binden aan kolommen in de resultaten, kunt u het Entity converteren naar een klasse Container.DataItem of kunt u de eigenschappen in de standaardindexeerfunctie binden door Eval("[attribute-logical-name]") te gebruiken.

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

Hiermee worden de volgende resultaten weergegeven in HTML.

HTML-resultaten

Het besturingselement CrmMetadataDataSource gebruiken

Het besturingselement CrmMetadataDataSource maakt gegevensbinding aan Microsoft Dynamics 365-metagegevens mogelijk. Het meest bruikbare doel is het binden van een vervolgkeuzelijst aan een Dynamics 365-optieset die u kunt gebruiken in een gegevensformulier waarmee gegevens worden verzameld voor opslag in Dynamics 365.

Het volgende voorbeeld toont het gebruik van het besturingselement CrmMetadataDataSource voor het binden naar drie afzonderlijke optiesets in de entiteit case (incident) van 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" />

Hiermee worden de volgende resultaten weergegeven in HTML.

HTML-resultaten

Gegevensbinding met code-behind gebruiken

De vorige voorbeelden gebruikten specifieke gegevensbronbesturingselementen voor het implementeren van declaratieve gegevensbinding. De klasse XrmServiceContext kan ook worden gebruikt met gegevensbinding via technieken voor code-behind. De servicecontext die wordt gegenereerd door het hulpprogramma CrmSvcUtil.exe (met de extensie Microsoft.Xrm.Client.CodeGeneration) heeft eigenschappen IQueryable voor alle Dynamics 365-entiteiten. U kunt standaard .NET Language-Integrated Query (LINQ)-query's schrijven of expressies met deze eigenschappen gebruiken en rechtstreeks binden aan uw repeaters of DataGrid-besturingselementen.

Meer informatie:Overzicht: Een webtoepassing maken die verbinding met Microsoft Dynamics CRM 2015 maakt met behulp van uitbreidingen voor ontwikkelaars

Opgeslagen query's in een portal gebruiken

Microsoft Dynamics 365 beschikt over de mogelijkheid om de klant toe te staan een query of een weergave op te slaan zodat deze later kan worden opgehaald. De weergave heeft kolomvolgorde en definities, sorteervolgorde en filteropties. Dit is een handige techniek om gebruikers toe te staan om een weergave in Dynamics 365 te configureren, waarna een ontwikkelaar het SavedQueryDataSource-besturingselement kan gebruiken voor binding aan die weergave en het GridView-besturingselement kan gebruiken met de eigenschap AutoGenerateColumns ingeschakeld. Hierdoor kan een ontwikkelaar rechtstreeks een Dynamics 365-weergave op een webpagina tonen en de inhoud weergeven die moet worden beheerd in Microsoft Dynamics 365. Zakelijke gebruikers kunnen vervolgens de inhoud van de weergave wijzigen zonder via een ontwikkelaar te hoeven werken om een wijziging uit te voeren op een webpagina en een nieuwe versie van de website over te brengen naar de productieserver.

Voor een voorbeeld hiervan, alsmede een voorbeeld van de manier waarop u een gegevensinvoerformulier van een opgeslagen query kunt genereren met het CrmEntityFormView-besturingselement, raadpleegt u Overzicht: Een webtoepassing maken die verbinding met Microsoft Dynamics CRM 2015 maakt met behulp van uitbreidingen voor ontwikkelaars.

Zie ook

Portalontwikkelingshandleiding voor Microsoft Dynamics CRM 2015
Voorbereiding voor poortontwikkeling (Dynamics CRM 2015)
Portalinhoud beheren (Dynamics CRM 2015)
Portalverificatie configureren (Dynamics CRM 2015)
Gebruik het hulpprogramma voor websitekopie (Dynamics CRM 2015)
Portaloverzichten voor Dynamics CRM 2015

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht