javascript - 如何在 Notes 实体字段上应用 REQUIRED FIELD 验证?

标签 javascript c# asp.net dynamics-crm dynamics-crm-online

我们试图制作 notes (with file upload)通过应用表单验证必填字段。

我们尝试使用的选项是 client side javascripting .到目前为止,还不错...

问题是在“事件处理程序”选项卡下:

Event Handlers tab

注意事项实体未列在控制项中

Notes entity is not listed amongst the Control items

因此很明显,Notes 实体没有客户端事件。

如何对 Notes 实体字段应用 REQUIRED FIELD 验证?

最佳答案

您想要执行的验证无法在父记录中执行。它必须以笔记的形式进行验证,但我们已经讨论过笔记实体不是完全可定制的,我们还必须记住社交 Pane 及其特殊性。

我认为验证这一点的最佳方法是在笔记的创建事件(预验证阶段)中创建一个插件,以检查正在创建的笔记是否已完成必填字段。

快速示例(我还没有测试过):

public class ValidateNote : IPlugin
{
    public void Execute(IServiceProvider serviceProvider)
    {
        IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
        IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
        IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

        if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) {

            Entity note = (Entity)context.InputParameters["Target"];

            // you can also use "subject" instead of "description"
            if (string.IsNullOrEmpty(note.GetAttributeValue<string>("description")) || string.IsNullOrEmpty(note.GetAttributeValue<string>("filename")))
            {
                throw new InvalidPluginExecutionException("Please add an attachment and description");
            }

        }

    }
}

关于javascript - 如何在 Notes 实体字段上应用 REQUIRED FIELD 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40039575/

相关文章:

c# - Asp.net session 终止

javascript - 为什么 'this' 在调试器中未定义但可在 console.log 中打印?

javascript - Ajax - 处理大量数据的最佳技术

asp.net mvc 操作中的 c# 异步方法

c# - 在 C# 中,什么类似于 C++ 中的 CHAR_BIT?快速腹肌

c# - 如何在我的网站中使用 PDFsharp 中的字体?

c# - 如何检查 View 状态存在于 asp.net 4.0

javascript - 使用 Javascript 更改隐藏字段的值

javascript - 用于检查 JS 数组中重复值的更快代码

c# - 具有 null 属性的嵌套属性的动态 linq 排序