分享方式:


ASP.NET Web 表單與資料繫結

 

發佈日期: 2016年11月

適用對象: Dynamics CRM 2015

其中一項最普遍的網頁程式設計技術是 ASP.NET Web 表單,可將資料繫結至控制項。Microsoft Dynamics CRM 2015 開發人員擴充功能提供了一些機制,方便您建置繫結至 Microsoft Dynamics 365 資料的 ASP.NET Web 表單。

本主題內容

使用 CrmService 內容和 LinqDataSource 控制項

使用 CrmDataSource 控制項和 FetchXML

使用 CrmMetadataDataSource 控制項

使用程式碼後置資料繫結

使用入口網站中儲存的查詢

使用 CrmService 內容和 LinqDataSource 控制項

使用 Microsoft Dynamics CRM 2015 開發人員擴充功能的建議作法是利用 Microsoft.Xrm.Client.CodeGeneration 擴充功能執行 CrmSvcUtil.exe 程式碼產生工具,產生適合您的 Microsoft Dynamics 365 實體模型的服務內容和資料傳輸物件類別。 服務內容類別中針對您的解決方案中的每個 Dynamics 365 都會包含一個 IQueryable 介面。 服務內容類別可輕鬆搭配 ASP.NETLinqDataSource 控制項使用,協助進行不需要任何程式碼後置的宣告式資料繫結。 將 LinqDataSource 控制項的 ContextTypeName 屬性設定為服務內容的類型名稱,並且將 TableName 屬性設定為您要查詢之實體的屬性名稱。Microsoft Dynamics 365 資料繫結至資料來源控制項之後,您就可以使用任何 ASP.NET 資料繫結控制項擷取並顯示資料,包括重複項和 GridView 控制項。

下列程式碼會使用 LinqDataSource 控制項繫結至 Dynamics 365 連絡人,並且使用 GridView 顯示它們。逐步解說:使用開發人員擴充功能,建立連線至 Microsoft Dynamics CRM 2015 的 Web 應用程式中可以看見相同的這個範例。

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

這會在 HTML 中顯示下列結果。

HTML 結果

使用 CrmDataSource 控制項和 FetchXML

如果您不想要使用 CrmSvcUtil.exe 工具產生網域內容和資料傳輸物件,可以使用 Microsoft.Xrm.Client.CrmOrganizationServiceContext

下列範例將使用 FetchXml 查詢 Microsoft Dynamics 365,並使用 CrmDataSource 控制項繫結至 Dynamics 365 資料。 結果會在 GridView 控制項中顯示。 請注意,格線檢視中的 DataItem 屬於 Entity 類型。 若要繫結至結果中的欄,您可以將 Container.DataItem 轉型為 Entity 類別,或是使用 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>

這會在 HTML 中顯示下列結果。

HTML 結果

使用 CrmMetadataDataSource 控制項

CrmMetadataDataSource 控制項允許對 Microsoft Dynamics 365 中繼資料進行資料繫結。 最實用的用途是將下拉式清單繫結至您在資料表單中使用的 Dynamics 365 選項組,這類資料表單會收集資料並儲存在 Dynamics 365 中。

下列範例將示範使用 CrmMetadataDataSource 控制項繫結至 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" />

這會在 HTML 中顯示下列結果。

HTML 結果

使用程式碼後置資料繫結

先前的範例使用了實作宣告式資料繫結的特定資料來源控制項。XrmServiceContext 類別也可以透過程式碼後置技術搭配資料繫結使用。CrmSvcUtil.exe 工具所產生的服務內容 (具有 Microsoft.Xrm.Client.CodeGeneration 擴充功能) 擁有 IQueryable 屬性可用於所有 Dynamics 365 實體。 您可以撰寫標準 .NET Language-Integrated Query (LINQ) 查詢或使用運算式搭配這些屬性,並直接將它們繫結至您的重複項或 DataGrid 控制項。

其他資訊:逐步解說:使用開發人員擴充功能,建立連線至 Microsoft Dynamics CRM 2015 的 Web 應用程式

使用入口網站中儲存的查詢

Microsoft Dynamics 365 能夠讓客戶儲存查詢或檢視表供之後擷取。 檢視表具有欄順序和定義、排序順序及篩選選項。 這是一項方便的技術,可讓使用者在 Dynamics 365 中設定檢視表,然後開發人員就可以使用 SavedQueryDataSource 控制項繫結至該檢視表,並使用已開啟 AutoGenerateColumns 屬性的 GridView 控制項。 如此開發人員就可以直接將 Microsoft Dynamics 365 檢視表放置到網頁中,並且在 Dynamics 365 中管理檢視表內容。 商務使用者可以變更檢視表的內容,而不必透過開發人員進行網頁變更並將新版本的網站升級至生產伺服器。

如需此作法的範例,以及如何使用 CrmEntityFormView 控制項從儲存的查詢產生資料輸入表單的範例,請參閱逐步解說:使用開發人員擴充功能,建立連線至 Microsoft Dynamics CRM 2015 的 Web 應用程式

另請參閱

Microsoft Dynamics CRM 2015 入口網站開發人員指南
準備入口網站開發 (Dynamics CRM 2015)
管理入口網站內容 (Dynamics CRM 2015)
入口網站驗證 (Dynamics CRM 2015)
使用網站複製工具 (Dynamics CRM 2015)
Dynamics CRM 2015 的入口網站逐步解說

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權