crm 2011 xrm.page.getattribute возвращает значение null, когда есть значение

Я не очень хорошо разбираюсь в JScript, но я написал следующий код в функции webResource, которая должна запускаться при загрузке формы (OnLoad)

var creationDateName = "createdon";
var today = new Date();
var creationDateAttr = Xrm.Page.getAttribute(creationDateName);
if(creationDateAttr!=null)
{
  /* Some more code */
}

Проблема в том, что Xrm.Page.getAttribute(creationDateName) возвращает null, когда в поле есть значение (поле не отображается в форме, но при поиске имеет значение). Прикол в том, что в моей тестовой организации тот же самый код работал как чудо, но когда я скопировал и вставил его в производственную организацию, чтобы выпустить решение, он не работает должным образом, что меня очень смущает. Любая идея, что может происходить?


person reneh5    schedule 15.12.2014    source источник


Ответы (3)


Вам нужно использовать getValue, чтобы вернуть значение в поле. Ваш код просто проверяет, существует ли поле на странице.

Вы также должны знать, что в режиме создания эти значения не устанавливаются, поэтому вы не можете их получить. В режиме обновления они будут работать. Поэтому вам нужно проверить, что страница также находится в режиме обновления:

var formType = Xrm.Page.ui.getFormType();

if (formType === 2) // Update
{
    var creationDate = Xrm.Page.getAttribute(creationDateName).getValue();
}
person Donal    schedule 15.12.2014
comment
Большое спасибо, я действительно пропустил поле на странице. Я ценю ваш ответ и фактически добавил getValue() - person reneh5; 16.12.2014

он дает вам атрибут, а не значение..

чтобы получить значение, вам нужно написать код, как показано ниже

var creationDateAttr = Xrm.Page.getAttribute(creationDateName);
var valueDateAttr=creationDateAttr.getValue();

OR

var creationDateAttrValue = Xrm.Page.getAttribute(creationDateName).getValue();

надеюсь, это поможет

person mzh    schedule 16.12.2014

Глупый я, я забыл добавить поле, которое я искал, поэтому оно возвращает ноль, но спасибо Доналу за ответ, на самом деле я пытался проверить, было ли поле заполнено или было нулевым. Спасибо

person reneh5    schedule 15.12.2014