13

次のコードを作成し、ルックアップ フィールドのフィールド onchange イベントで呼び出されるように、CRM 2011 フォームの Web リソースとしてこれを含めました。行の前ではすべて正常に動作し$.ajax({...ているのに、「<code>$ is undefined」というエラーが表示されます。私はスクリプトにあまり詳しくないので、助けてください。

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);
        }
    });
}
4

3 に答える 3

25

$ は jQuery の省略形です。jQuery は CRM2011 にネイティブに含まれていないため、自分で Web 参照を追加する必要があります。jQuery 用の JavaScript Web リソースを作成し、jQuery コードに貼り付けて、Web リソースをフォームに追加するだけです。また、Web リソースをフォームにロードするには、CRM がそれから呼び出す関数を指定する必要があります。この場合、jQuery はライブラリであり、その関数を onload で呼び出すことはないため、呼び出す関数として isNaN (ネイティブ JavaScript 関数) を使用するだけです。

于 2011-03-02T14:14:36.750 に答える
1

作業中のエンティティ フォーム。フォームのカスタマイズ -> フォームのプロパティに移動します。そのフォームに既に含まれているファイル (.js) を確認できます。

[追加] (左上) をクリックして、JQuery ファイル (JQuery1.4.4 以降のバージョンなど) を CRM Web リソースに追加する場合は追加します。そうでない場合は、最初にこのファイルを CRM Web リソースに追加する必要があります。

于 2013-04-10T07:44:27.077 に答える
0

フォームにjqueryを含める必要があるようです。

基本的には、他の JavaScript ファイルと同じ方法で jquery を追加するだけです。

  • jquery のコピーをダウンロードします (圧縮されている場合は解凍します。.js ファイルが必要です)。
  • ソリューション内の Web リソースに移動します
  • ツールバーの新規ボタンをクリックします
  • フォームに記入
  • [ファイルのアップロード] ボックスの [参照] ボタンをクリックします。
  • ダウンロードした .js ファイルを選択します
  • リボン バーの [保存] ボタンをクリックします。
  • リボン バーの [発行] ボタンをクリックします。

新しく作成した Web リソースをフォームに追加します (フォームのプロパティの下)。
これがフォームにリストされている最初のライブラリであることを確認してください。
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 オブジェクト モデル メソッドを使用します。
Microsoft Dynamics CRM 2011 Web
アプリケーションでサポートされている jQuery の使用は、jQuery.ajax メソッドを使用し
て REST エンドポイントからデータを取得することだけです。詳しくは、jQuery の使用を参照してください。
jQuery を使用して Microsoft Dynamics CRM 2011 アプリケーション ページまたはフォームを変更することはサポートされていません。
独自の HTML Web リソース ページ内で jQuery を使用できます。
http://msdn.microsoft.com/en-us/library/gg328261.aspx#BKMK_UsingjQuery>

Ajax および JScript Web リソースで REST エンドポイントを使用する
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/

于 2014-02-14T16:27:52.707 に答える