Пользовательские представления всегда дают пользователям возможность переключаться и выбирать записи. Если вы не можете решить эту проблему с помощью обучения пользователей, то примените некоторые проверки сохранения формы (или плагина предварительного обновления), чтобы выполнить итерацию по списку участников и предупредить их, когда что-то не на месте.
В противном случае - раньше я делал эта addPreSearch
и addCustomFilter
техника все время. Читать дальше
function FilterPartyList() {
var Regarding = Xrm.Page.getAttribute("regardingobjectid").getValue();
//checking if regarding fields is empty before we apply the filter
if (Regarding != null) {
Xrm.Page.getControl("requiredattendees").addPreSearch(Filter);
}
}
function Filter() {
var RegardingValue = Xrm.Page.getAttribute("regardingobjectid").getValue();
//if Regarding has a value, proceed
if (RegardingValue != null) {
//used to retrieve Name of the Account held in the Regarding field
var RegardingTextValue = RegardingValue[0].name;
//GUID used in filter
var RegardingID = RegardingValue[0].id;
var plist_filter = "<filter type='and'>" + "<condition attribute='parentcustomerid' operator='eq' name='" + RegardingTextValue + "' value='" + RegardingID + "' />" + "</filter>";
Xrm.Page.getControl("optionalattendees").addCustomFilter(plist_filter, "contact");
}
}