在绑定模式或虚拟模式(Virtual Mode)下,如果已对数据排序,那么插入数据时的行为取决于数据模型的实现方式。对于ADO.NET,新加的行会被自动排序至合适的位置。
4.1.3.7 关于新行,还要注意:
你不能将新行的Visible属性设置为false,否则会触发一个InvalidOperationException类型的异常。
新行在创建时总是处于非选中(unselected)状态。
4.1.3.8 Virtual Mode下的新行
如果你正要实现虚拟模式(Virtual Mode),需要考虑数据模型添加新行和回滚添加操作的情况。该功能准确的实现方式取决于数据模型的实现方式及其事务机制,例如,提交的时候是针对单元还是行。参看本文档后面关于Virtual Mode的主题。
4.2 关于Null
在使用数据源的时候,比如或业务对象,经常需要处理null。null可能是一个实际的null(VB中为Nothing),也可能是一个的”null”(DBNull.Value),当你遭遇了这些,就需要考虑如何显示它们。另一方面,很多时候,你还需要向数据源写入null。使用单元Style的NullValue属性和DataSourceNullValue 属性,你可以改变DataGridView处理null的方式。
4.2.1 NullValue属性
DataGridViewCellStyle.NullValue 属性本来要被命名为FormattedNullValue 的,但是后来没来得及作出这个更改。但它能给我们带来一点提示——顾名思义,在式化时会用到它。如果一个单元的为”null”(等于null或DBNull.Value),它会使用你设置的NullValue属性来显示。该属性的默认取决于所在列的类型,见下图:
DataGridView列类型
列的DefaultCellStyle.NullValue
TextBoxColumn
String.Empty (“”)
ImageColumn
空的图像( )
ComboBoxColumn
String.Empty (“”)
ButtonColumn
String.Empty (“”)
LinkColumn
String.Empty (“”)
CheckBoxColumn
默认取决于ThreeState属性的,如果为true,默认为CheckState.Indeterminate ,否则为unchecked。
有一点要了解,在用户输入数据时也会用到NullValue。例如,若用户向TextBox类型单元输入了string.Empty,那么会将null作为该单元的。 查看下面的DataSourceNullValue属性以了解究竟是输入了什么作为单元的。
4.2.2 DataSourceNullValue属性
DataGridViewCellStyle.DataSourceNullValue属性要被命名为ParseNullValue的,如果NullValue属性被命名为FormattedNullValue的话,但最后还是采用了DataSourceNullValue,这样更直观准确。在将null写入单元的时,就会用到DataSourceNullValue属性。在数据绑定情形下,这个null将被写入或业务对象,此处需要进行控制,因为对于和业务对象来说,null的概念不尽相同。通常你会期望,使用业务对象时将DataSourceNullValue 设置为null,而使用时则将其设置为DBNullValue。DataSourceNullValue的默认为DBNull.Value。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-50070-24.html
人家进了12海里距离
布什布莱尔无缘无故入侵伊拉克害死了数万伊拉克百姓
然而今天人已经来犯我