New Item Row
数据网格可以显示一个空行,使用户可以添加新记录。该行由显示在相应行指示符单元格内的星号(*)标识。若要取消添加新行,用户可以按Esc键。
相关API
- GridOptionsView.NewItemRowPosition — 允许您启用一个新的项目行,并选择它应该定位到视图的上边缘还是下边缘。
- GridControl.NewItemRowHandle — 一个常量,用于指定“新建项目行”的行句柄。
Initialize New Rows
ColumnView.InitNewRow 每当用户添加新记录时,InitNewRow事件就会激发。处理此事件并调用相应的SetValue和GetValue方法,以方便用户输入并使用默认值自动填充新行单元格。
在以自定义方式初始化新添加的行的演示模块中,每一个新行都会自动接收“记录日期”、“名称”和“备注”列下单元格的初始值。
gridView.OptionsView.NewItemRowPosition = NewItemRowPosition.Top;
// Handle the InitNewRow event to initialize newly added rows. To initialize row cells, use the SetRowCellValue method.
gridView.InitNewRow += (s, e) => {
GridView view = s as GridView;
// Set the new row cell value.
view.SetRowCellValue(e.RowHandle, view.Columns["RecordDate"], DateTime.Today);
view.SetRowCellValue(e.RowHandle, view.Columns["Name"], "CustomName");
// Obtain the new row cell value.
int newRowID = Convert.ToInt32(view.GetRowCellValue(e.RowHandle, "ID"));
view.SetRowCellValue(e.RowHandle, view.Columns["Notes"], string.Format("Row ID: {0}",newRowID));
};
Data Navigator
数据导航器是一个嵌入式工具栏,允许用户浏览数据网格记录和添加/删除行。
相关API
- GridControl.UseEmbeddedNavigator—指定数据导航器是否可用。
- GridControl.EmbeddedNavigator。按钮–显示在数据导航器中的按钮。
Control Navigator
数据导航器是直接显示在数据网格中的ControlNavigator对象。如果需要,您可以创建一个独立的ControlNavigator,并将其放置在网格外的任何位置。使用导航器的
ControlNavigator.NavigatableControl属性,将导航器绑定到数据网格。控件导航器还可以浏览树状列表和垂直网格控件的记录。
Add and Remove Rows in Code
修改基础数据源
如果数据源允许用户添加和删除记录,则可以使用数据源API修改网格行。如果数据源未实现IBindingList接口,则不会向数据网格发送添加/删除通知。在这种情况下,请调用 GridControl.RefreshDataSource方法(更新主网格视图)或BaseView.RefreshData方法(用于更新此特定视图)以手动更新数据网格GridOptionsNavigation.AutoFocusNewRow属性允许数据网格自动聚焦添加到数据源的新记录。
下面的代码将新记录添加到BindingList<T>对象中,该对象用作数据网格的数据源。由于此数据源支持更新通知,因此不需要手动刷新数据网格。
private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
(gridControl1.DataSource as BindingList<SalesPerson>).AddNew();
}
ColumnView.AddNewRow
将空行添加到数据网格中。如果启用了“新建项目行”,则此方法会将焦点移到此元素。否则,新记录将临时放置在现有记录的下方。用户输入单元格值并接受该行后,新行将根据当前数据组的筛选器、组和排序设置移动到其最终位置。若要手动接受新行,请调用ColumnView。来自代码的UpdateCurrentRow方法。以下代码显示如何将新行添加到数据组中。假设网格视图中的数据是根据一列或多列进行分组的。该行被添加到与当前关注的行相同的组中。
待续。。。