DevExpress Scheduler Control 22.2.4:C#编程操作后数据源无数据问题
解决DevExpress Scheduler UI添加约会后DataTable无记录的问题
检查字段映射配置
确保AppointmentStorage的Mappings配置与你的DataTable列名完全匹配,且包含所有必要字段:
// 示例配置,请根据实际DataTable列名调整 schedulerDataStorage1.Appointments.Mappings.Start = "StartDateTime"; schedulerDataStorage1.Appointments.Mappings.End = "EndDateTime"; schedulerDataStorage1.Appointments.Mappings.Subject = "Subject"; schedulerDataStorage1.Appointments.Mappings.ResourceId = "ResourceId"; // 按需添加Description、StatusId等其他字段映射
注意:DataTable的对应列数据类型必须匹配(比如Start/End需为DateTime类型)。
确认数据提交机制
- 若手动调用过
BeginUpdate,必须成对调用EndUpdate触发数据同步:
schedulerDataStorage1.Appointments.BeginUpdate(); // 执行操作后 schedulerDataStorage1.Appointments.EndUpdate();
- 检查
AppointmentStorage.AutoCommit属性是否设为true(默认值为true,若手动修改过需恢复):
schedulerDataStorage1.Appointments.AutoCommit = true;
手动触发数据刷新
如果配置无问题,可在添加约会后手动刷新数据源:
// 提交DataTable的更改 ((DataTable)schedulerDataStorage1.Appointments.DataSource).AcceptChanges(); // 必要时重新绑定数据源 schedulerDataStorage1.Appointments.DataSource = yourAppointmentsDataTable;
检查资源绑定有效性
若约会关联了资源,需确保ResourceStorage的映射配置正确,且Resources DataTable存在对应数据。ResourceId不匹配会导致约会无法写入数据源。
调试验证
添加约会后,先检查内存中的约会集合是否存在新增记录,定位问题环节:
// 查看内存中的约会列表 var appointments = schedulerDataStorage1.Appointments.Items; // 若集合有记录但DataTable为空,说明映射或提交逻辑存在问题
内容的提问来源于stack exchange,提问作者JaymeisterJay
相关产品推荐
相关产品推荐

