CRM插件获取C#中页面的标题

时间:2014-01-09 12:35:57

标签: c# dynamics-crm-2011 dynamics-crm-online dynamics-crm-2013

我正在创建一个CRM插件,它将页面标题设置为帐户实体的名字。

通过在f​​ormload Event 上编写 javascript函数,我达到了相同的效果 在CRM中。

以下是代码

var titlename = Xrm.Page.data.entity.attributes.get("firstname").getValue();  
    var titleSpan = document.getElementById('form_title_div');  
     if(titleSpan) {  
        for(var i = 0;i < titleSpan.children.length;i++) {  
               if(titleSpan.children[i].className == 'ms-crm-Form-Title-Data autoellipsis') {  
                titleSpan.children[i].innerText = titlename;  
                 }  
          }  
     }

但我的客户不需要任何javascript代码,而是通过插件来获取它。

我写了一个插件,但不知道如何获取和设置页面的标题。

插件项目是一个C#类库

插件

的代码如下

基本上我想要注释(Javascipt)行的C#代码

using (var crm = new XrmServiceContext(service))  
{  
                var account = crm.ContactSet.Where(c => c.AccountId == id).First();  
                var titlename = contact.Crmp_Firstname.ToString();  
                //var titleSpan = document.getElementById('form_title_div');  
                //if(titleSpan) {  
                    //for(var i = 0;i < titleSpan.children.length;i++) {  
                        //if(titleSpan.children[i].className == 'ms-crm-Form-Title-Data autoellipsis') {  
                            //titleSpan.children[i].innerText = titlename;  
               //}  
          //}  
     //}  
}

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:4)

无法通过插件修改帐户表单的标题。 这是因为插件代理服务器端,而JavaScript(和您的帐户表单)在客户端执行。 CRM不存储帐户的标题,但会在运行时生成。