CSFrameworkV6 - 支持单表基础资料表格批量编辑数据(IGridDataWatcher接口DevExpressGridViewWatcher使用)
目录
一、功能说明
提供一组通用接口管理与维护表格数据,用户可以在表格内批量增加、修改和删除数据,一次性提交数据。
优势:批量修改数据,适合单表基础资料的管理与维护。
源码位置
二、使用方法
使用 IGridDataWatcher 接口管理表格数据
C# 全选
_Watcher = new DevExpressGridViewWatcher<dt_Unit>(gvSummary, w => w.isid);
使用DevGridEditable类控制表格的焦点行及单元格
C# 全选
//控制表格单元格是否可编辑
new DevGridEditable<dt_Unit>(_Watcher,
nameof(dt_Unit.isid),
nameof(dt_Unit.UnitId)).HandleColumnEditable(gvSummary);
隐藏分页标签
C# 全选
//隐藏分页标签
tcBusiness.SelectedTabPage = tpSummary;
tcBusiness.ShowTabHeader = DefaultBoolean.False;
隐藏 btnView 查看按钮
C# 全选
public override void InitButtons()
{
base.InitButtons();
_buttons.RemoveButton(ButtonNameList.btnView); //隐藏 btnView 查看 按钮
}
重写六个数据操作按钮
DoAdd / DoDelete / DoEdit / DoViewContent / DoSave /DoCancel
数据校验,检查数据重复
参考1:
C# 全选
protected override bool ValidatingData()
{
var list = gvSummary.GetDataSource<dt_Unit>();
var isDuplicated = list.GroupBy(g => g.UnitId).IsDuplicated();
if (isDuplicated)
{
Msg.Warning("单位编码重复!");
return false;
}
return true;
}
参考2:
C# 全选
protected override bool ValidatingData()
{
var list = gvSummary.GetDataSource<dt_SalesPerson>();
//检查编码为空
if (list.Any(w => w.SalesCode.IsEmpty()))
{
Msg.Warning("业务员编码不能为空!");
return false;
}
//检查编码重复
if (list.GroupBy(g => g.SalesCode).IsDuplicated())
{
Msg.Warning("业务员编码不能重复!");
return false;
}
return true;
}
查询数据后,必须重置表格数据观察者
设置表格不可编辑列
设置这些列的Editable属性=false
三、修改日志 20230824
支持修改主键
存在数据引用的主键不可修改
检查数据应用
界面代码优化
Toolbar统一数据操作按钮
源码参考
参考:CartonERP.纸质资料(dt_PaperType)管理窗体
案例1:业务员管理
参考:CSFrameworkV6旗舰版的【业务员管理Grid编辑】例子。
案例2:单位管理
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网