Кастомизация
22
Янв
4

Кнопка в стиле CRM 2011

Добавляем кнопку на форму (именно на форму, а не на Ленту) в стиле CRM 2011:

  • Создаем PNG Веб-ресурс из прозрачного рисунка (casper.png);
  • Разместите этот Веб-ресурс на форме в одной ячейке (т.е. по высоте должна быть занята одна строка);
  • Создаем JS Веб-ресурс с таким кодом:
    function createButton(id, text, WebResource, width, leftMargin, event) {
        // Определяем кнопку
        var button = '' +
            '<button id="' + id + '" ' +
            'style="margin-left:' + leftMargin + ';width:' + width + ';" ' +
            'class="ms-crm-Button" ' +
            'onmouseover="Mscrm.ButtonUtils.hoverOn(this);" ' +
            'onmouseout="Mscrm.ButtonUtils.hoverOff(this);" ' +
            '>' + text + '</button>';
    
        // Заменяем Веб-ресурс на кнопку
        var ctrl = document.getElementById(WebResource + '_d')
        ctrl.innerHTML = button;
        ctrl.firstChild.attachEvent('onclick', event); // Присоединяем функцию к событию клика на кнопке
    }
    

    Этот код создает HTML-определение новой кнопки и заменяет им определение Веб-ресурса;

  • Затем создаем еще один JS Веб-ресурс, в котором вызываем функцию создания кнопки:
    function leadOnLoad() {
        createButton('superButton', 'Супер батон', 'WebResource_placeholder', '150px', '119px', function () { alert("аууууу") });
    }
    

    В функцию createButton передаются следующие параметры:

    • ID создаваемой кнопки;
    • Надпись на кнопки;
    • Имя Веб-ресурса, который будем замещать кнопкой;
    • Ширину кнопки в пикселях;
    • Отступ кнопки от левого края в пикселях;
    • И функцию, которая будет вызываться при нажатии кнопки.
  • Подключаем оба созданных JS Веб-ресурса к форме и на онлоаде вызываем головную функцию из второго JS Веб-ресурса (чтобы она в свою очередь запустила функцию создание кнопки);

Зетс олл 🙂




Комментарии (4)
  • Мария 22.01.2012

    спасибо! очень пригодилось

  • Igor 22.01.2012

    Я в функцию впихнул код: function leadOnLoad() {
    createButton(‘superButton’, ‘Супер батон’, ‘WebResource_placeholder’, ‘300px’, ‘119px’, function () { var parameters = {};
    parameters[«new_name»] = Xrm.Page.getAttribute(«new_name»).getValue();
    parameters[«new_fortest»] = Xrm.Page.getAttribute(«new_testfield»).getValue();
    //parameters[«mobilephone»] = Xrm.Page.getAttribute(«new_mobilephone»).getValue();
    Xrm.Utility.openEntityForm(«new_insurance_policy», null, parameters); });
    }

    Открывается новая сущность с полями, но потом срс выдает ошибку.
    Или так нельзя указывать функцию? Извините за вопросы чайника

  • ferrum17 22.01.2012

    Так же не получилось, вылетает ошибка при клике, видел упоминания, что перестает работать после 13ого RU

  • slivka_83 22.01.2012

    После 12 ролапа сильно изменилась (упростилась) HTML-разметка страниц, поэтому скорее всего старые неподдерживаемые манипуляции с DOM’ом перестанут работать.

*

code