【问题标题】:Editable Subgrid setting the required field from onchange event broken可编辑的子网格从 onchange 事件中设置必填字段
【发布时间】:2020-08-25 14:14:35
【问题描述】:

我们在表单中的可编辑子网格上使用this snippet,而其中一个属性触发器onchange 事件触发了此功能,并且到目前为止,必要的字段被标记为必填项。因此用户无法保存可编辑的子网格行,并且自动保存也会被一条通知消息阻止。

它现在突然停止工作,调试时没有错误或异常,尽管该字段被 onchange 函数标记为必填 - 用户仍然可以在必填字段中保存没有值的记录。不知道为什么现在观察到这种行为变化。

还有其他人遇到过这个问题吗?有什么解决方法吗?

function ReasonChange(eContext) {
    debugger;
    // get the attribute which fired the onchange.
    var reasonAttr = eContext.getEventSource();

    // get the container for the attribute.
    var attrParent = reasonAttr.getParent();

    // get the value of the reason.
    var reason = reasonAttr.getValue(); 

    if (reason != null) {

        // var field1 Attribute
        var field1 = attrParent.attributes.get("new_followupdate");

        //Callback
        if (reason[0].id == "{33E9E459-5A8B-EA11-A812-000D3A5A17E3}") {

            // set field as mandatory.
            field1.setRequiredLevel("required");
        }
        else {

            //clear field value
            field1.setValue(null);

            // set field as mandatory.
            field1.setRequiredLevel("none");
        }
}

【问题讨论】:

    标签: javascript dynamics-crm


    【解决方案1】:

    我现在可以想到的一种解决方法是在 Onsave 事件上添加代码,如果不显示错误消息,则检查字段值是否包含数据。

    另外,如果行为相同或不同,您是否在其他浏览器中检查过?

    如果我有帮助,请标记我的答案已验证

    【讨论】:

    • 是的,谢谢,在 Edge 中也有同样的经历。 OnSave 迭代所有行有点棘手,您是否有任何工作代码示例。也尝试使用业务规则,发生了一些奇怪的事情,但不知道为什么这么复杂。计划将插件作为最后的手段,而不是在此上浪费更多时间/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多