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