ASP.NET 웹 양식 및 데이터 바인딩
게시 날짜: 2016년 11월
적용 대상: Dynamics CRM 2015
가장 인기 있는 웹 프로그래밍 기술 중 하나는 데이터를 컨트롤에 바인딩하는 ASP.NET 웹 양식입니다.Microsoft Dynamics CRM 2015에 대한 개발자 확장에는 Microsoft Dynamics 365 데이터에 바인딩하는 ASP.NET 웹 양식을 빌드하기 쉽도록 여러 가지 메커니즘이 있습니다.
이 항목의 내용
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에 연결하는 웹 응용 프로그램 빌드에서 확인할 수 있습니다.
<?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에 다음과 같은 결과를 표시합니다.
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에 다음과 같은 결과를 표시합니다.
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에 다음과 같은 결과를 표시합니다.
코드 숨김 데이터 바인딩 사용
앞의 예제에서는 선언적 데이터 바인딩을 구현하는 특정 데이터 원본 제어를 사용했습니다.XrmServiceContext 클래스는 코드 숨김 기술을 사용하여 데이터 바인딩에 사용할 수도 있습니다.CrmSvcUtil.exe 도구에서 생성되는 서비스 컨텍스트(Microsoft.Xrm.Client.CodeGeneration 확장 포함)에는 모든 Dynamics 365 엔터티에 대한 IQueryable 속성이 있습니다. 표준 .NET LINQ(Language-Integrated Query) 쿼리를 작성하거나 이러한 속성이 있는 확장을 사용하여 반복기 또는 DataGrid 컨트롤에 직접 바인딩할 수 있습니다.
추가 정보:연습: 개발자 확장을 사용하여 Microsoft Dynamics CRM 2015에 연결하는 웹 응용 프로그램 빌드
포털에서 저장된 쿼리 사용
Microsoft Dynamics 365에는 고객이 쿼리 또는 보기를 나중에 검색하기 위해 저장할 수 있는 기능이 있습니다. 보기에는 열 순서와 정의, 정렬 순서 및 필터 옵션이 있습니다. 사용자가 Dynamics 365에서 보기를 구성한 후 개발자가 SavedQueryDataSource 컨트롤을 사용하여 해당 보기에 바인딩하고AutoGenerateColumns 속성을 설정하여 GridView컨트롤을 사용할 수 있는 편리한 기술입니다. 따라서 개발자는 Dynamics 365 보기를 직접 웹 페이지에 두고 Microsoft Dynamics 365에서 보기 내용이 관리되도록 할 수 있습니다. 그런 다음 사용자는 개발자를 통해 웹 페이지를 변경하고 웹 사이트의 새 버전을 프로덕션 서버에 프로모션하지 않고도 비즈니스 보기의 내용을 변경할 수 있습니다.
CrmEntityFormView 컨트롤을 사용하여 저장된 쿼리에서 데이터 엔터티 양식을 생성하는 방법 관련 예제 및 이 예제는 연습: 개발자 확장을 사용하여 Microsoft Dynamics CRM 2015에 연결하는 웹 응용 프로그램 빌드를 참조하십시오.
참고 항목
Microsoft Dynamics CRM 2015용 포털 개발자 가이드
포털 개발 준비(Dynamics CRM 2015)
포털 콘텐츠 관리(Dynamics CRM 2015)
포털 인증(Dynamics CRM 2015)
웹 사이트 복사 도구 사용(Dynamics CRM 2015)
Dynamics CRM 2015용 포털 연습
© 2017 Microsoft. All rights reserved. 저작권 정보