我是 CRM 2011 的新手,所以如果答案很明显,我深表歉意。我制作的实体是用户填写信息的表单,某些字段是隐藏的,直到满足某些要求才能使它们可见。
例:你迟到了吗?是/否(隐藏,直到选择是)原因:
我使用 javascript 在开始时使它们不可见,然后在满足要求时使它们可见。用户按下保存按钮后,“原因”字段将恢复为不可见,有没有办法让它保持可见?
谢谢
我是 CRM 2011 的新手,所以如果答案很明显,我深表歉意。我制作的实体是用户填写信息的表单,某些字段是隐藏的,直到满足某些要求才能使它们可见。
例:你迟到了吗?是/否(隐藏,直到选择是)原因:
我使用 javascript 在开始时使它们不可见,然后在满足要求时使它们可见。用户按下保存按钮后,“原因”字段将恢复为不可见,有没有办法让它保持可见?
谢谢
您必须在onLoad
事件中编写 javascript 代码,以查看字段的值是否已经处于导致字段可见的状态。保存实体后,它会重新加载自己,以防插件碰巧编辑了属性。
如果您已经将函数附加到属性 onchange 事件,则需要将以下内容添加到 onload 事件中:
//Will fire all functions connected to the attribute change event
Xrm.Page.getAttribute("attribute_name").fireOnChage();
或者目录调用实现代码的函数即
//Will only call the specified function.
ShowHideField();
此外,您可能会发现直接从 onload 代码而不是表单 UI 附加到 onchange 处理程序更容易,即
Xrm.Page.getAttribute("attribute_name").addOnChange(ShowHideField);
总结一下:
function OnCrmPageLoad() {
var attrObj = Xrm.Page.getAttribute("attribute_name");
attrObj.addOnChange(ShowHideField);
attrObj.fireOnChage(); // OR ShowHideField();
//… more code here
}
function ShowHideField() {
// hide fields depending on yes/no questions …
}