CRM 2011 "$ не определено" - PullRequest
       13

CRM 2011 "$ не определено"

13 голосов
/ 02 марта 2011

Я создал следующий код и включил его в качестве веб-ресурса в форму CRM 2011 для вызова в поле onchange событие поля поискаВсе работает нормально до строки $.ajax({..., а затем появляется ошибка «$ не определено».Я не очень знаком со сценариями, поэтому, пожалуйста, помогите.

function GetAddress() {

    var accountId;
    var dataArray;
    var accountRequestUrl;

    if (crmForm.all.regardingobjectid.DataValue != null) {

        dataArray = crmForm.all.regardingobjectid.DataValue;
        accountId = dataArray[0].id;

        if (typeof GetGlobalContext == "function") {
            var context = GetGlobalContext();
            accountRequestUrl = context.getServerUrl();
        }
        else {
            if (typeof Xrm.Page.context == "object") {
                accountRequestUrl = Xrm.Page.context.getServerUrl();
            }
        }

        accountRequestUrl = Xrm.Page.context.getServerUrl();
        accountRequestUrl += "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'" +
            accountId + "')";

        crmForm.all.maxlife_addressname.DataValue = accountRequestUrl;

        GetAccountRecord(accountRequestUrl);
    }
    else {
        alert("null");
    }

}

function GetAccountRecord(accountRequestUrl) {

    $.ajax({
        type: "GET",
        url: accountRequestUrl,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function (request, textStatus, errorThrown) {
            alert("Error occurred: " + request.responseXML + "from url " + requestUrl);
            return;
        },
        success: function (data) {
            var results = data.d["results"];
            var AccountValue = new Array();
            for (resultKey in results) {
                AccountValue.push(results[resultKey]);
            }

            FillValues(AccountValue);
        }
    });
}

Ответы [ 3 ]

25 голосов
/ 02 марта 2011

$ является сокращением для jQuery. JQuery изначально не включен в CRM2011, поэтому вам придется добавить веб-ссылку самостоятельно. Просто создайте веб-ресурс JavaScript для jQuery, вставьте код jQuery, а затем добавьте веб-ресурс в форму. Кроме того, чтобы загрузить веб-ресурс в форму, вам нужно указать функцию, из которой CRM будет вызывать ее. Поскольку в этом случае jQuery - это библиотека, и вы не будете вызывать ни одну из ее функций при загрузке, просто используйте isNaN (встроенную функцию JavaScript) в качестве вызываемой функции.

1 голос
/ 10 апреля 2013

Форма сущности, над которой вы работаете.Перейти к настройке формы-> Свойства формы.Вы можете увидеть файлы (.js), уже включенные для этой формы.

Нажмите «Добавить» (слева вверху) .. и добавьте файл JQuery (например, JQuery1.4.4 или более позднюю версию), если файл JQueryдобавленный в ваши веб-ресурсы CRM, если нет, то сначала вам нужно добавить этот файл в веб-ресурсы CRM.

0 голосов
/ 14 февраля 2014

Похоже, вам нужно включить JQuery в вашей форме.

По сути, вы просто добавляете jquery так же, как и любой другой файл javascript.

  • Загрузите копию jquery (распакуйте ее, если вам нужен архив, вам нужен файл .js)
  • Перейдите к веб-ресурсам в вашем решении
  • Нажмите кнопку Создать впанель инструментов
  • Заполните форму
  • Нажмите кнопку «Обзор» для поля «Загрузить файл»
  • Выберите загруженный файл .js
  • Нажмите кнопку Сохранитьна панели ленты
  • Нажмите кнопку «Опубликовать» на панели ленты

Добавьте вновь созданный веб-ресурс в форму (в разделе Свойства формы).
Убедитесь, чтоэто первая библиотека, указанная в вашей форме.
Вам ничего не нужно в обработчиках событий для jquery, просто вызовите ее из любой из ваших пользовательских библиотек, как обычно.

Имейте в виду, что многие вещи, для которых у вас может возникнуть соблазн использовать jquery, могут не поддерживаться.Microsoft хочет, чтобы вы использовали объект Xrm.Page:
Используйте объектную модель Xrm.Page
http://msdn.microsoft.com/en-us/library/gg328474.aspx

Согласно Microsoft:
Использование jQuery
Не используйте jQuery для взаимодействия с формами Microsoft Dynamics CRM 2011.
Используйте методы объектной модели Xrm.Page для доступа к элементам формы.
Единственное поддерживаемое использование jQuery ввеб-приложение Microsoft Dynamics CRM 2011
должно использовать метод jQuery.ajax для извлечения данных из
конечной точки REST.Для получения дополнительной информации см. Использование jQuery.
Использование jQuery для изменения страниц или форм приложений Microsoft Dynamics CRM 2011 не поддерживается.
Вы можете использовать jQuery на своих собственных страницах веб-ресурсов HTML.
http://msdn.microsoft.com/en-us/library/gg328261.aspx#BKMK_UsingjQuery>

Использование конечной точки REST с веб-ресурсами Ajax и JScript
http://msdn.microsoft.com/en-us/library/1bb82714-1bd6-4ea4-8faf-93bf29cabaad#BKMK_UsingJQuery

CRM 2011 Полезные кусочки JavaScript
Вызов события onchangeполя
http://www.powerobjects.com/blog/2011/01/14/crm-2011-useful-javascript-tidbits/

...