Разработка
05
Сен
0

Script# Xrm.Page Library

cript# расширение VS, которое позволяет писать код на C# и затем компилировать его в Javascript. При этом вы получаете все преимущества C#: строго типизированный язык, intellisense, пространства имен, отдельные папки, тесты и т.д.

А Script# Xrm.Page Library это библиотека, которая позволяет использовать Script# для написания кода под CRM 2011.

Использование:

  • Скачайте и установите расширение для VS: Script#
  • Скачайте на локальный диск Xrm.Page.dll
  • После установки Script# создайте в VS новый проект Script# — Script Library;
  • В этом проект добавьте ссылку на Xrm.Page Library;
  • Замените в проекте код на такой:
    using System;
    using System.Collections.Generic;
    using System.Html;
    using Xrm;
    
    namespace ScriptSharpCRM
    {
    
        public class Class1
        {
            public static void OnSave(ExecutionContext context)
            {
                string value = Page.GetAttribute("name").GetValue<string>();
                Script.Alert("value=" + value);
    
                context.GetEventArgs().PreventDefault();
            }
        }
    }
    

    Здесь мы просто при сохранении получаем значение поля, выводим алерт и отменяем сохранение;

  • Скомпилируйте проект – в результате в выходной папке (по-умолчанию, в папке bin) появится JS-файл, примерно такого содержания:
    (function () {
        Type.registerNamespace('ScriptSharpCRM');
    
        ScriptSharpCRM.Class1 = function ScriptSharpCRM_Class1() { }
        ScriptSharpCRM.Class1.onSave = function ScriptSharpCRM_Class1$onSave(context) {
            var value = Xrm.Page.getAttribute('name').getValue();
            alert('value=' + value);
            context.getEventArgs().preventDefault();
        }
    
        ScriptSharpCRM.Class1.registerClass('ScriptSharpCRM.Class1');
    })();
    
  • Создайте JS Веб-ресурс на основе выходного файла и присоедините его к форме нужного объекта (в данном примере это Организация). Далее вызовите на онсейве функцию ScriptSharpCRM.Class1.onSave.



Комментарии (0)

*

code