下面来看看XAF中列表有哪些编辑模式:
一、inline编辑
下图说明了WinForms和ASP.NET应用程序中的可编辑列表视图。
在win中,这个很友好,就像excel中编辑一样。5星功能^_^。
在web中,还需要点击一个按钮,这个个人感觉和弹出窗口没啥区别。当然,还是能够看到别的记录的信息,勉强用吧。
-
在VS中找到xafml文件,找到指定的列表视图
-
设置AllowEdit属性为真。
-
如果要允许新建功能,则需要设置AllowNew属性为真和IModelListViewNewItemRow.NewItemRowPosition属性为top或bottom。即是在上面还是下面显示新建的那一行。
WinForms的具体功能
拆分布局(MasterDetailMode属性)
即,左边的列表选中了哪条记录,右边的详细视图就显示哪条记录。很遗憾的告诉你,web中不支持这个。如果需要,则使用dashboardview自己定制!
下图显示了拆分布局。
要为特定列表视图启用拆分布局,请执行以下步骤。
-
打开xafml,展开视图并导航到对应于所需列表视图的子节点。
-
将IModelListView.MasterDetailMode属性ListViewAndDetailView
-
详细视图可以显示在列表视图的右侧或下方。导航到SplitLayout子节点,设置IModelSplitLayout.Direction属性,这里可以控制 水平或垂直。
对象可以有几个详细视图。该IModelListView.MasterDetailView属性允许您指定详细信息视图,将代表目前在列表视图中选择的对象。如果此属性值是空的,IModelListView.DetailView使用的价值。如果两个MasterDetailView和的DetailView属性是未指定的,那么 IModelClass.DefaultDetailView用于当前对象类型指定值。
自动提交更改
WinForms应用程序默认行为是,如果最终用户在编辑单元格后(使用inline编辑器或使用详细视图)关闭或离开窗口时,则显示确认对话框。
在视图中选择另一个对象或在窗口中选中另一个元素时,可编辑列表视图中所做的更改可以自动保存,无需确认。
使用ModificationsController.ModificationsHandlingMode和ModificationsController.ModificationsCheckingMode属性来更改编辑列表视图所需的行为。
ASP.NET特定功能
InlineEditMode属性
除了标准的编辑 操作,的ASP.NET Web应用程序XAF有特殊InlineEdit行动。虽然这个动作属于标准RecordEdit类,它不显示在主工具栏上。相反,它显示在列表编辑器的上下文菜单中,并在内部由列表编辑器处理。要自定义就地编辑模式在ASP.NET应用程序,使用IModelListViewWeb.InlineEditMode属性 视图 ->ListView 节点。
当使用了ASPxGridListEditor时IModelView.AllowEdit属性设置为真时。下表展示了不同的值的效果。
EditForm:按下编辑后,那一条记录没有了,显示成了右图的栏子。
EditFormAndDisplayRow: 按下编辑后,原来那一行还显示,同时出现一个编辑区域。
InLine
PopupEditForm:弹出一个窗口
Batch:
批量编辑,马上就要达到Excel那种方式了,完成后,需要按下SaveChages才会生效。
最大的遗憾是,当前还不支持引用类型和其他复杂类型。官方有说过复杂类型的支持方法。
我对官方未支持复杂类型表示理解,确实很复杂,比如要支持a*b=c回后台去计算。
比如要实现Appearce模块。比如。。。。反正很多功能要做。
我也对官方不支持复杂类型表示不理解,都特么几年了,还特么没出来这个功能。
期待这个功能完成,这个好就牛B了。
在批量编辑模式(Batch)具有一定的特殊性:
- 当用户单击一行时,不会调用详细视图。
- 如果新行不能被编辑和保存,请设置ASPxGridListEditor.UseASPxGridViewDataSpecificColumns属性设置为假。
- 几种数据类型不能被编辑:图像,引用,Criteria,文件附件。手动实现请看:如何在批量编辑模式编辑引用属性的主题。
- 使用新建命令后,对象的值被传到客户端,它就不会被更新了,即,没有回传到服务端计算结果再更新回列表的行为。
关联集合(集合属性编辑模式)
在XAF的web中两种编辑模式。
-
默认情况下,编辑模式下,下面的列表也可以编辑。
-
另一种模式,在查看时,下面的关联列表是可以编辑的。
全局的控制这个行为:
在设置WebApplication.CollectionsEditMode属性即可。
只想指定一个列表的模式时:模型编辑器,找到详细视图,设置 IModelDetailViewWeb.CollectionsEditMode属性即可。