El complemento CRM obtiene el título de una página en C #
-
21-12-2019 - |
Pregunta
Estoy creando un complemento para CRM que establece el título de la página como primer nombre para la entidad de cuenta.
El resultado deseado que he logrado lo mismo escribiendo una función javascript en el evento de formulard en CRM.
Siguiendo es el código
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;
}
}
}
Pero mi cliente no quiere ningún código de JavaScript en su lugar, quiere, a través de un complemento .
He escrito un complemento, pero no sé cómo obtener y establecer el título de la página.
Plugin Project es una biblioteca de clase C # .
El código está a continuación para plugin
Básicamente quiero el código C # para las líneas comentadas (javastipt)
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;
//}
//}
//}
}
Gracias de antemano por cualquier ayuda
Solución
No es posible modificar el título de un formulario de cuenta por un complemento. Esto, debido a que los complementos del lado del servidor, en su lugar, en su lugar, JavaScript (y su forma de cuenta) se ejecuta el lado del cliente. CRM no almacena el título de la cuenta, pero la genera en tiempo de ejecución.