zoukankan      html  css  js  c++  java
  • 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);
    }

  • 相关阅读:
    重载运算符 && 构造函数 的写法
    2019 ICPC Asia Xuzhou Regional
    中国剩余定理
    求逆元
    Exgcd
    Leading Robots
    大家好
    AtCoder Grand Contest 047 部分题解
    CodeForces 1389E Calendar Ambiguity 题解
    CodeForces 1380F Strange Addition 题解
  • 原文地址:https://www.cnblogs.com/erqie/p/767039.html
Copyright © 2011-2022 走看看