0

我正在为CRM创建一个插件,它将页面的标题设置为账户实体的名字。CRM Plugin获取C#页面的标题#

我通过在CRM中的formload事件 上编写javascript函数实现了相同的效果。

以下是代码

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; 
       //} 
      //} 
    //} 
} 

感谢所有帮助

+0

访问DOM不受支持,通常是一个坏主意;该代码可能随时中断。您可以将所需的信息放在表单标题中;它甚至可能对用户更明显。 – Bvrce

回答

4

这是不可能的修改插件的帐户标题。 这是因为插件扮演服务器端,而JavaScript(和您的帐户形式)是执行客户端。 CRM不存储帐户的标题,但在运行时生成它。

+0

是100%正确的 - 这在技术上是不可能的,因为没有值设置。我还要指出,客户的要求没有逻辑基础,因为CRM表单本身已经广泛使用JavaScript。 – Nicknow