IBatis.net学习笔记_gridview不自动生成nullable列的问题

经过试用发现一个问题:
       当在类里使用泛型来处理nullable的字段时,如果对用databind方法进行数据编写的如gridview,formview,detaisview等控件.采用自动生成列将得不到实体类里声明为nullable的列值.但是在程序里通过entity.attribute()是可以得到这个字段里的值的.这就说明问题不在于实体类或者IBtais上,而在于gridview控件上.
       通过搜索网页,发现gridview有一个IsBindableType的方法,用于检测并处理绑定列的类型,而默认的此方法并未处理nullable类型的字段,所以造成gridview不能自动生成列.给出的解决方法是重写IsBindableType方法:
public static bool IsNullableType(Type type)
{
    return type.IsGenericType &&
      type.GetGenericTypeDefinition() == typeof(Nullable<>);
}
通过上面的方法来检测nullable类型.
public override bool IsBindableType(Type type)
{           
    return NullableHelper.IsNullableType(type)
      || base.IsBindableType(type);
}

原文地址:https://www.cnblogs.com/erqie/p/767039.html