Condividi tramite


Binding dati e moduli Web ASP.NET

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Una delle tecnologie di programmazione Web più apprezzate è quella dei moduli Web ASP.NET, che associa dati ai comandi. Le estensioni per gli sviluppatori per Microsoft Dynamics CRM 2015 contengono numerosi meccanismi che rendono semplice sviluppare un modulo Web ASP.NET che associa ai dati di Microsoft Dynamics 365.

In questo argomento

Utilizzare il contesto CrmService e il controllo LinqDataSource

Utilizzare il controllo CrmDataSource e FetchXML

Utilizzare il controllo CrmMetadataDataSource

Utilizzo dell'associazione dati con codice nascosto

Utilizzare le query salvate in un portale

Utilizzare il contesto CrmService e il controllo LinqDataSource

La procedura consigliata per l'utilizzo delle estensioni per gli sviluppatori per Microsoft Dynamics CRM 2015 è eseguire lo strumento di generazione del codice CrmSvcUtil.exe, con l'estensione Microsoft.Xrm.Client.CodeGeneration, per generazione le classi per oggetti di trasferimento dei dati e contesto del servizio che corrispondono al modello di entità di Microsoft Dynamics 365. La classe di contesto del servizio include un'interfaccia IQueryable per ogni entità di Dynamics 365 nella soluzione. La classe di contesto del servizio può essere facilmente utilizzata con il controllo ASP.NETLinqDataSource per semplificare l'associazione dati dichiarativa che non necessita di alcun codice nascosto. Impostare l'attributo ContextTypeName del controllo LinqDataSource sul nome del tipo del contesto del servizio e impostare l'attributo TableName sul nome proprietà dell'entità di cui si desidera eseguire una query. Dopo che i dati di Microsoft Dynamics 365 sono associati al controllo origine dati, è possibile utilizzare qualsiasi controllo associato ai dati di ASP.NET per estrarre e visualizzare i dati, inclusi i ripetitori e il controllo GridView.

Il codice seguente utilizza un controllo LinqDataSource per associare ai contatti di Dynamics 365 e visualizzarli con GridView. Lo stesso esempio può essere visto in Procedura dettagliata: sviluppare un'applicazione Web che si connette a Microsoft Dynamics CRM 2015 tramite le estensioni per sviluppatori.

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

Questo diagramma illustra i risultati seguenti in HTML.

Risultati HTML

Utilizzare il controllo CrmDataSource e FetchXML

Se non si desidera utilizzare lo strumento CrmSvcUtil.exe per generare un oggetti del contesto di dominio e di trasferimento dei dati, è possibile utilizzare Microsoft.Xrm.Client.CrmOrganizationServiceContext.

Nell'esempio seguente viene utilizzato FetchXml per eseguire query di Microsoft Dynamics 365 e il controllo CrmDataSource per associare ai dati di Dynamics 365. I risultati vengono visualizzati in un controllo GridView. Si noti che DataItem nella visualizzazione griglia è di tipo Entity. Per associare alle colonne nei risultati, è possibile eseguire il cast del Container.DataItem su una classe Entity o è possibile associare alle proprietà nell'indicizzatore predefinito utilizzando 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>

Questo diagramma illustra i risultati seguenti in HTML.

Risultati HTML

Utilizzare il controllo CrmMetadataDataSource

Il controllo CrmMetadataDataSource consente di associare i dati ai metadati di Microsoft Dynamics 365. Lo scopo più utile è associare un elenco a discesa a un set di opzioni di Dynamics 365 utilizzato in un modulo di dati che sta raccogliendo dati da memorizzare in Dynamics 365.

Nell'esempio seguente viene illustrato l'utilizzo del controllo CrmMetadataDataSource per l'associazione a tre set di opzioni distinti nell'entità case (incident) entità di 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" />

Questo diagramma illustra i risultati seguenti in HTML.

Risultati HTML

Utilizzo dell'associazione dati con codice nascosto

Negli esempi precedenti sono stati utilizzati controlli origine dati specifici che implementano l'associazione dati dichiarativa. La classe XrmServiceContext può inoltre essere utilizzata con l'associazione dati utilizzando tecniche con codice nascosto. Il contesto del servizio che viene generato dallo strumento CrmSvcUtil.exe (con l'estensione Microsoft.Xrm.Client.CodeGeneration) avrà proprietà IQueryable per tutte le entità di Dynamics 365. È possibile scrivere query .NET Language Integrated Query (LINQ) standard o utilizzare espressioni con tali proprietà e associarle direttamente ai ripetitori o ai controlli DataGrid.

Ulteriori informazioni:Procedura dettagliata: sviluppare un'applicazione Web che si connette a Microsoft Dynamics CRM 2015 tramite le estensioni per sviluppatori

Utilizzare le query salvate in un portale

Microsoft Dynamics 365 offre la possibilità di consentire al cliente di salvare una query o una visualizzazione per un recupero successivo. La visualizzazione presente ordine delle colonne e definizioni, ordine di ordinamento e opzioni di filtro. È una tecnica utile consentire agli utenti di configurare una visualizzazione in Dynamics 365 e quindi uno sviluppatore potrà utilizzare il controllo SavedQueryDataSource per associare a quella visualizzazione e utilizzare un controllo GridView con proprietà AutoGenerateColumns attivata. Questo consente a uno sviluppatore di rimuovere una visualizzazione di Dynamics 365 direttamente in una pagina Web e far gestire il contenuto della visualizzazione in Microsoft Dynamics 365. Gli utenti aziendali possono quindi modificare il contenuto della visualizzazione senza dover utilizzare uno sviluppatore per modificare una pagina Web e promuovere una nuova versione del sito Web al server di produzione.

Per un esempio di questo e un esempio che illustra come creare un modulo di immissione dati da una query salvata utilizzando il controllo CrmEntityFormView, vedere Procedura dettagliata: sviluppare un'applicazione Web che si connette a Microsoft Dynamics CRM 2015 tramite le estensioni per sviluppatori.

Vedere anche

Guida per sviluppatori del portale per Microsoft Dynamics CRM 2015
Prepararsi per lo sviluppo del portale (Dynamics CRM 2015)
Gestire il contenuto del portale (Dynamics CRM 2015)
Autenticazione del portale (Dynamics CRM 2015)
Usare lo strumento di copia del sito Web (Dynamics CRM 2015)
Procedure dettagliate dei portali per Dynamics CRM 2015

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright