Javascript CRM 2011:使用JS在表单上创建时更改值
我想在CRM 2011中的表单OnSave事件中使用javascript更改字段的值。只有在创建实体时,才会发生这种情况 这意味着我检查OnCreate的FormMode,然后尝试使用以下命令更改字段值:Javascript CRM 2011:使用JS在表单上创建时更改值,javascript,dynamics-crm-2011,dynamics-crm,Javascript,Dynamics Crm 2011,Dynamics Crm,我想在CRM 2011中的表单OnSave事件中使用javascript更改字段的值。只有在创建实体时,才会发生这种情况 这意味着我检查OnCreate的FormMode,然后尝试使用以下命令更改字段值: Xrm.Page.data.entity.attributes.get("field").setValue("asd"); Xrm.Page.data.entity.save(); 或 他们两个都不工作。如何在CRM 2011表单中使用JavaScript创建时保存/更改值 代码
Xrm.Page.data.entity.attributes.get("field").setValue("asd");
Xrm.Page.data.entity.save();
或
他们两个都不工作。如何在CRM 2011表单中使用JavaScript创建时保存/更改值
代码: }
似乎我的呼叫是异步的。正确的代码应该是使用
async:false调用synchron,我总是使用第二个示例来设置值,但是由于您已经处于表单的OnSave
事件中,因此不必显式调用entity.save()
发布整个OnSave
函数。
Xrm.Page.getAttribute("field").setValue("asd");
Xrm.Page.data.entity.save();
function doSomeThingOnSave(ExecutionObj) {
var formType = Xrm.Page.ui.getFormType();
if (formType != 1) return;
var odataSelect = Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc";
odataSelect += "/blablabla";
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: odataSelect,
beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); },
success: function (data, textStatus, XmlHttpRequest) {
if (data.d.results != null && data.d.results[0] != null) {
var value= data.d.results[0].asdsda;
var field = Xrm.Page.getAttribute('sad');
if (field != null) {
field.setSubmitMode("always");
field.setValue(field.getValue() +value);
}
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
if (errorThrown != "Forbidden")
alert('OData Select Failed: ' + odataSelect);
}
});