Dynamics CRM 2011编程系列(41):Portal的制作(二)
来源:互联网 发布:sql server 2008免费 编辑:程序博客网 时间:2024/05/16 07:46
上篇博文介绍了Portal的数据显示控件,它们分别是:CrmMetadataDataSource,SavedQueryDataSource,XrmServiceContext。那本文来看看在Portal中对CRM的数据进行CRUD。
我们在Portal中对Dynamics CRM 系统中的数据进行CRUD操作可以有两个方向:1.使用ADO.NET直接操作Dynamics CRM 系统的数据库;2.使用Dynamics CRM 系统为制作Portal而提供的前期绑定代码(在上篇博文中使用过)。本文就不介绍第一种方法啦,就来好好琢磨下第二种方法啦! :D
我们来看个小DEMO吧:
涉及实体
客户
实现需求
1.显示现有客户基本信息
2.能修改客户的基本信息
3.能删除客户
4.能创建客户
实现步骤
图1
图2
图3
图4
图5
图6
程序代码
Default2.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <style type="text/css"> .style1 { height: 19px; } </style></head><body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" CellPadding="4" ForeColor="#333333" GridLines="None" onrowcancelingedit="GridView1_RowCancelingEdit" onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" DataKeyNames="name,telephone1,emailaddress1" onrowdeleting="GridView1_RowDeleting" PageSize="20"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:TemplateField> <ItemTemplate> <asp:HiddenField runat="server" ID="hfAccountId" Value='<%#Eval("accountId") %>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="名称"> <ItemTemplate> <asp:Label runat="server" ID="lblName" Text='<%#Bind("name") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtName" Text='<%#Bind("name") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="电话"> <ItemTemplate> <asp:Label runat="server" ID="lblTelephone1" Text='<%#Bind("telephone1") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtTelephone1" Text='<%#Bind("telephone1") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Email"> <ItemTemplate> <asp:Label runat="server" ID="lblEmailAddress1" Text='<%#Bind("emailaddress1") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtEmailAddress1" Text='<%#Bind("emailaddress1") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> </div> <div> <br /><br /><br /> <table style="width:500;border-color:Black;" border="1" cellpadding="5" cellspacing="0"> <caption> 添加客户记录 </caption> <colgroup> <col id="info" width="100px" /> <col id="inputd" /> </colgroup> <tr> <td> <asp:Label ID="Label1" runat="server" Text="名称"></asp:Label> </td> <td> <asp:TextBox ID="txtName" runat="server"></asp:TextBox> </td> </tr> <tr> <td class="style1"> <asp:Label ID="Label2" runat="server" Text="电话"></asp:Label> </td> <td class="style1"> <asp:TextBox ID="txtTelephone1" runat="server"></asp:TextBox> </td> </tr> <tr> <td> <asp:Label ID="Label3" runat="server" Text="Email"></asp:Label> </td> <td> <asp:TextBox ID="txtEmailAddress1" runat="server"></asp:TextBox> </td> </tr> <tr> <td colspan="2"> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="添加" /> </td> </tr> </table> </div> </form></body></html>
Default2.aspx.cs
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Xrm;public partial class Default2 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindData(); } } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; BindData(); } protected void BindData() { var xrm = new XrmServiceContext("Xrm"); var activedAccount = xrm.AccountSet; GridView1.DataSource = activedAccount.Where(new Func<Account, bool>(a => { return a.StateCode ==0; })); GridView1.DataBind(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; BindData(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { var xrm = new XrmServiceContext("Xrm"); Account uptAccount = new Account(); GridViewRow uptRow = GridView1.Rows[e.RowIndex]; uptAccount.AccountId = Guid.Parse(((HiddenField)uptRow.Cells[0].FindControl("hfAccountId")).Value); uptAccount.Name = ((TextBox)uptRow.Cells[1].FindControl("txtName")).Text; uptAccount.Telephone1 = ((TextBox)uptRow.Cells[2].FindControl("txtTelephone1")).Text; uptAccount.EMailAddress1 = ((TextBox)uptRow.Cells[3].FindControl("txtEmailAddress1")).Text; xrm.Update(uptAccount); xrm.SaveChanges(); GridView1.EditIndex = -1; BindData(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { var xrm = new XrmServiceContext("Xrm"); GridViewRow uptRow = GridView1.Rows[e.RowIndex]; Guid AccountId = Guid.Parse(((HiddenField)uptRow.Cells[0].FindControl("hfAccountId")).Value); xrm.Delete("account", AccountId); BindData(); } protected void Button1_Click(object sender, EventArgs e) { var xrm = new XrmServiceContext("Xrm"); Account addAccount = new Account(); addAccount.Name = txtName.Text; addAccount.Telephone1 = txtTelephone1.Text; addAccount.EMailAddress1 = txtEmailAddress1.Text; xrm.AddObject(addAccount); xrm.SaveChanges(); BindData(); }}
- Dynamics CRM 2011编程系列(41):Portal的制作(二)
- Dynamics CRM 2011编程系列(40):Portal的制作(一)
- Dynamics CRM 2011编程系列(35):报表的制作(二)
- Dynamics CRM 2011编程系列(34):报表的制作(一)
- Dynamics CRM 2011编程系列(36):报表的制作(三)
- Dynamics CRM 2011 编程系列(32):Ribbon的开发二(按钮的禁用规则)
- Dynamics CRM 2011编程系列(43):JavaScript 的调试
- Dynamics CRM 2011 编程系列(12):JS编程之征服表单控件(二)
- Dynamics CRM 2011编程系列(55):Dynamics CRM 集成开发简述
- Dynamics CRM 2011编程系列(51):FetchExpression(二)----JavaScript也疯狂
- Dynamics CRM 2011编程系列(39):Ribbon Button + GhostHook
- Dynamics CRM 2011编程系列(49):FetchExpression(一)
- Dynamics CRM 2011编程系列(54):MagicBox实现原理
- Dynamics CRM 2011编程系列
- Dynamics CRM 2011编程系列
- Dynamics CRM 2011 编程系列 (6):JS脚本编程之实体的CRUD[Create,Read]
- Dynamics CRM 2011 编程系列(7):JS编程之实体的CRUD[Update,Delete]
- Dynamics CRM 2011 编程系列(14):JS编程之表单控件的执行上下文
- Android中EditText属性
- poj 2251 Dungeon Master
- Dynamics CRM 2011编程系列(40):Portal的制作(一)
- Ajax的简单介绍
- DirectShow 注册 filter
- Dynamics CRM 2011编程系列(41):Portal的制作(二)
- 【线段树】 hdu4107 Gangster
- Ext 4.0 MVC详解
- 关于hive中文本存储格式与RCFile格式
- 如果修改host后没有即刻生效,可使用终端命令手动清除DNS缓存:
- poj 1321 棋盘问题
- Oracle基础学习笔记(4)
- HttpURLConnection POST 上传文件
- JavaScript世界的一等公民 - 函数