CRM-2011 " $ "ist undefiniert"
Habe ich folgenden code erstellt, und habe diese als web-Ressource, die auf der CRM-2011-Formular aufgerufen werden, auf dem Feld onchange-Ereignis der lookup-Feld. Alles ist in Ordnung, bevor die $.ajax({...
line und dann habe ich einen Fehler "$
ist nicht definiert".
Ich bin nicht sehr vertraut mit scripting-also bitte Hilfe.
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);
}
});
}
InformationsquelleAutor MAXA | 2011-03-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
$ ist die Kurzform für jQuery. jQuery wird nicht nativ aufgenommen in CRM2011, so müssen Sie einen Webverweis hinzufügen sich selbst. Einfach erstellen Sie eine JavaScript-web-Ressource für jQuery, fügen Sie die jQuery-code, und fügen Sie dann die web-Ressource, um Ihre form. Auch, um die web-Ressource zu laden, die auf Ihre form, Sie müssen eine Funktion angeben, die für CRM zu nennen. Da in diesem Fall jQuery ist eine Bibliothek, und Sie werden nicht durch Aufruf einer seiner Funktionen onload, einfach, verwenden Sie isNaN (eine native JavaScript-Funktion) die Funktion aufrufen.
Dieser Beitrag sollte erhalten Sie die meisten der Weg dorthin. Wenn Sie noch weitere Hilfe benötigen werde ich versuchen zu posten, zusätzliche Infos später. gtcrm.wordpress.com/2011/02/15/...
Wenn dieses Skript aufgerufen wird, von der 'OnChange' - Ereignis eines Formulars Steuern, dann gibt es keine Notwendigkeit, rufen gar nichts auf-form-load. Nur das hinzufügen der Skripte auf die form lädt Sie dann automatisch in der Reihenfolge erscheinen Sie auf dem Formular-Skript-Anpassung Netz. Die einzige Zeit, die man bräuchte, um eine Funktion aufzurufen, um sicherzustellen, ist ein Skript geladen ist, wenn eine Band das Drehbuch von abhängigen Skript. (Ich hoffe es ist klar was ich sagen will)
InformationsquelleAutor Polshgiant
Entity Formular, auf dem Sie arbeiten. Gehen Sie auf Formular individuell anpassen->Eigenschaften.
Sie sehen die Dateien(.js) bereits für das Formular.
Klicken Sie auf "Hinzufügen" (Links oben)..und fügen Sie die JQuery-Datei(wie JQuery1.4.4 oder höhere version), wenn die JQuery-Datei in Ihr CRM-Webresources, wenn nicht, dann müssen Sie diese Datei in CRM-webresources ersten.
Ich denke, wenn ein Formular geladen wird, dann zuerst die mitgelieferte Bibliothek geladen werden, die dann die Körpers wird anfangen zu laden. So dass, wenn eine Funktion aufgerufen wird, ist vorhanden in der Bibliothek, dann wird es funktionieren. Eine Sache ist hier, die versuchen, zu minimieren, einschließlich Ihrer Bibliothek in Ihrer form, weil Sie mehr Bibliothek, mehr Zeit wird es dauern, um zu laden, dann zuerst Ihr Formular wird geladen. Bitte korrigieren Sie mich, wenn ich falsch bin.
Ich verstehe, was Sie versuchen zu sagen. Um klar zu sein, müssen Sie einen Aufruf einer Funktion, die in jede Bibliothek gehören, die mit dem Formular-editor, sonst wird das Formular nicht laden. Ich denke, Sie waren falsch zu machen, nicht Bibliotheken zu laden, die nicht genannt, weil es übernimmt die Kontrolle Weg von den Entwickler. Wenn ich will, zu entwickeln langsamen Formen, die eine lange Zeit dauern zu laden, dass ist mein Geschäft. Moderne Browser-cache diese Bibliotheken sowieso, so dass die performance-Einbußen würde nicht bemerkt werden nach dem ersten laden sowieso.
InformationsquelleAutor Anish
Klingt wie Sie brauchen, um jquery auf Ihre form.
Im Grunde kannst du nur hinzufügen, dass jquery auf die gleiche Weise wie jede andere javascript-Datei.
Fügen Sie Ihre neu erstellte Web-Ressource, um Ihre form (Unter Formular-Eigenschaften).
Sicher sein, dies ist die erste Bibliothek auf Ihrer form.
Sie brauchen nicht alles im Event-Handler von jquery, nur nennen es Ihre eigenen Bibliotheken, wie gewohnt.
Bedenken Sie, dass viele der Dinge, die Sie könnten versucht sein, zu verwenden jquery für die möglicherweise nicht unterstützt werden. Microsoft will Ihnen die Nutzung des Xrm.Seite Objekt:
Verwenden Sie die Xrm.Seite Objektmodell
http://msdn.microsoft.com/en-us/library/gg328474.aspx
Verwenden Sie den REST-Endpunkt mit Ajax und JScript-Webressourcen
http://msdn.microsoft.com/en-us/library/1bb82714-1bd6-4ea4-8faf-93bf29cabaad#BKMK_UsingJQuery
CRM 2011 Nützliche JavaScript-Leckerbissen
Rufen Sie das onchange-Ereignis für ein Feld
http://www.powerobjects.com/blog/2011/01/14/crm-2011-useful-javascript-tidbits/
InformationsquelleAutor Robert M.