你的位置:首页 > 软件开发 > ASP.net > 通过实例学习Fireasy开发(补充)

通过实例学习Fireasy开发(补充)

发布时间:2015-04-06 00:00:46
本文目录 通过实例学习Fireasy开发(上篇) 通过实例学习Fireasy开发(中篇) 通过实例学习Fireasy开发(下篇) 通过实例学习Fireasy开发(补充) ...

通过实例学习Fireasy开发(补充)

      本文目录

      通过实例学习Fireasy开发(上篇)

      通过实例学习Fireasy开发(中篇)

      通过实例学习Fireasy开发(下篇)

      通过实例学习Fireasy开发(补充)

 

 

      前面的功能已经开发完成了,但是这里专门用一章来进行补充。

 

      一、EasyUI验证

      不知道你有没有发现,我们虽然在EmployeeMetada里加了验证特性RequiredAttribute、StringLengthAttribute,但是页面并没有在data-options里生成validType。这是由于少了Fireasy.Portal组件造成了。我们只需要把ValidateBoxSettingBinder和NumberBoxSettingBinder这两个类拷贝过来就行了。

      ValidateBoxSettingBinder主要负责将基本的验证绑定到ValidateBoxSettings对象的ValidType属性中。

  /// <summary>  /// <see cref="ValidateBoxSettings"/> 的绑定者。  /// </summary>  public class ValidateBoxSettingBinder : ISettingsBinder  {    public bool CanBind(ISettingsBindable settings)    {      return typeof(ValidateBoxSettings).IsAssignableFrom(settings.GetType());    }    public void Bind(Type modelType, get='_blank'>string propertyName, ISettingsBindable settings)    {      //模型类型必须实现自 IEntity      if (!typeof(IEntity).IsAssignableFrom(modelType))      {        return;      }      //获取对应的依赖属性      var property = PropertyUnity.GetProperty(modelType, propertyName);      if (property == null)      {        return;      }      var vsettings = settings as ValidateBoxSettings;      //获取依赖属性所指定的验证特性      var validTypes = new List<string>();      foreach (var validation in ValidationUnity.GetValidations(property))      {        ParseValidation(vsettings, validation, validTypes);      }      vsettings.ValidType = validTypes.ToArray();    }    /// <summary>    /// 解析 <see cref="ValidationAttribute"/> 对象。    /// </summary>    /// <param name="settings"></param>    /// <param name="validation">要解析的 <see cref="ValidationAttribute"/> 对象。</param>    /// <param name="validTypes">如果 <paramref name="validation"/> 能与 EasyUI 的客户端验证所对应,则添加到 validType 属性中。</param>    private void ParseValidation(ValidateBoxSettings settings, ValidationAttribute validation, List<string> validTypes)    {      //必填验证特性      var required = validation as RequiredAttribute;      if (required != null)      {        settings.Required = true;        return;      }      //长度验证特性      var stringLength = validation as StringLengthAttribute;      if (stringLength != null)      {        validTypes.Add(string.Format("length[{0},{1}]", stringLength.MinimumLength, stringLength.MaximumLength));        return;      }      //电话验证特性      var telphone = validation as TelphoneAttribute;      if (telphone != null)      {        validTypes.Add("phone");        return;      }      //手机验证特性      var mobile = validation as MobileAttribute;      if (mobile != null)      {        validTypes.Add("mobile");        return;      }      //手机或电话验证特性      var telOrMobile = validation as TelphoneOrMobileAttribute;      if (telOrMobile != null)      {        validTypes.Add("phoneOrMobile");        return;      }      //邮箱验证特性      var email = validation as EmailAttribute;      if (email != null)      {        validTypes.Add("email");        return;      }      var ascii = validation as AsciiCodingAttribute;      if (ascii != null)      {        validTypes.Add("ascii");        return;      }      var un = validation as UserNameAttribute;      if (un != null)      {        validTypes.Add("username");        return;      }      var chinese = validation as ChineseCodingAttribute;      if (chinese != null)      {        validTypes.Add("chinese");      }    }  }

原标题:通过实例学习Fireasy开发(补充)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录