Dynamics CRM 2011编程系列(40):Portal的制作(一)

来源:互联网 发布:sql server 2008免费 编辑:程序博客网 时间:2024/05/16 08:15

   本博文来聊聊怎么制作Dynamics CRM 2011 系统的Portal吧。制作Portal有两种方式可以供我们选择,它们分别为:1.使用Dynamics CRM 2011 支持的Portal控件;2.直接调用Dynamics CRM 2011 的数据库。

   这两种方法各有各的优势,在制作Portal的时候通常都将这两者结合起来一起使用。

   咱们先来了解下Dynamics CRM 2011 支持的Portal控件吧。在使用Dynamics CRM 2011支持的Portal控件前,我们先要生成一个早期绑定的数据源,生成该数据源的代码如下:

图1

待工具“crmsvcutil.exe“生成完代码“Xrm.cs”后按如下步骤将它添加到Portal站点项目中。

 

图2

图3 为portal项目添加程序集引用

 

修改Portal站点Web.config文件如下:

<configuration><configSections><section name="microsoft.xrm.client" type="Microsoft.Xrm.Client.Configuration.CrmSection,Microsoft.Xrm.Client"/></configSections><system.web><compilation debug="true" targetFramework="4.0"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/><add assembly="System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/><add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/><add assembly="System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies></compilation><pages><controls><add tagPrefix="crm" namespace="Microsoft.Xrm.Portal.Web.UI.WebControls" assembly="Microsoft.Xrm.Portal"/></controls></pages></system.web><connectionStrings><add name="Xrm" connectionString="Server=http://192.168.0.30:8110/test;Domain=crm;Username=administrator;Password=Pa$$w0rd"/></connectionStrings><microsoft.xrm.client><contexts><add name="Xrm" type="Xrm.XrmServiceContext,App_Code"></add></contexts></microsoft.xrm.client><system.serviceModel><serviceHostingEnvironment aspNetCompatibilityEnabled="true"/></system.serviceModel></configuration>


 

至此Portal的框架已经搭建完毕,现在我们来看看Dynamics CRM为我们提供了哪些数据显示控件:

LinqDataSource

Aspx代码

<asp:LinqDataSource ID="Contacts" ContextTypeName="Xrm.XrmServiceContext" TableName="ContactSet" runat="server" /><asp:GridView ID="GridView1" DataSourceID="Contacts" AutoGenerateColumns="false" runat="server">    <Columns>        <asp:TemplateField HeaderText="First Name">            <ItemTemplate>                <asp:Label ID="Label1" Text='<%# Eval("firstname")%>' runat="server" />            </ItemTemplate>        </asp:TemplateField>        <asp:TemplateField HeaderText="Last Name">            <ItemTemplate>                <asp:Label ID="Label2" Text='<%# Eval("lastname")%>' runat="server" />            </ItemTemplate>        </asp:TemplateField>        <asp:TemplateField HeaderText="City">            <ItemTemplate>                <asp:Label ID="Label3" Text='<%#Eval("address1_city") %>' runat="server" />            </ItemTemplate>        </asp:TemplateField>    </Columns></asp:GridView>

显示效果

CrmMetadataDataSource

Aspx代码

<crm:CrmMetadataDataSource ID="PriorityCodes" runat="server"    EntityName="campaign"    AttributeName="typecode" /><asp:DropDownList ID="DropDownList1" runat="server"    DataSourceID="PriorityCodes"    DataTextField="OptionLabel"    DataValueField="OptionValue" />


显示效果

 

SavedQueryDataSource

Aspx代码

<crm:SavedQueryDataSource ID="ActiveContacts" SavedQueryName="可用联系人" runat="server" /><asp:GridView ID="GridView2" DataSourceID="ActiveContacts" AutoGenerateColumns="true" runat="server"></asp:GridView>


显示效果

XrmServiceContext

Aspx代码

<asp:GridView runat="server" ID="ContactsGridView" AutoGenerateColumns="false">    <Columns>        <asp:TemplateField HeaderText="First Name">            <ItemTemplate>                <asp:Label ID="Label1" Text='<%# Eval("firstname")%>' runat="server" />            </ItemTemplate>        </asp:TemplateField>        <asp:TemplateField HeaderText="Last Name">            <ItemTemplate>                <asp:Label ID="Label2" Text='<%# Eval("lastname") %>' runat="server" />            </ItemTemplate>        </asp:TemplateField>        <asp:TemplateField HeaderText="City">            <ItemTemplate>                <asp:Label ID="Label3" Text='<%# Eval("address1_city") %>' runat="server" />            </ItemTemplate>        </asp:TemplateField>    </Columns></asp:GridView>


Aspx.cs代码

        var xrm = new Xrm.XrmServiceContext("Xrm");        var exampleContacts = xrm.ContactSet;        ContactsGridView.DataSource = exampleContacts;        ContactsGridView.DataBind();


显示效果

 

小结

     由于找不到程序集“AntiXssLibrary ”的4.0版本,所以2个控件没能正常使用。它们分别是“使用Fetch来过滤数据源的CrmDataSource控件”和“CrmEntityFormView ”。

大家要是能找到这个程序集可以发给我。(:D)

 

原创粉丝点击