Grid控件高级应用

本文介绍了如何在Visual FoxPro(VFP)中使用GRID控件实现高级应用,包括如何自定义列对象的输入界面,如用Spinner替换TextBox。通过示例程序展示了如何修改Column对象的属性,如CurrentControl、Sparse和Visible,以及如何在不同数据表之间建立关联。此外,还提到了如何实现某些列的只读性和与其他控件如Container的交互。最后,强调了Grid控制与其他对象的协同工作能力。
摘要由CSDN通过智能技术生成

在GRID控制中有标题对象(Header Object)、列对象(Column Object)。通常,Header对象用来描述所要显示的表格栏目名称的特征,而列对象则用来提供用户输入的界面,许多人以为列对象的输入界面只能以文本框控制(Textbox Control)来实现,其实不然。文本框控制只是列对象的默认输入界面,使用者完全可以选择其他合适的控制来替代这个默认的输入界面,只不过需要自行加入其他种类的控制(如ComboBox控制、Spinner控制、Checkbox控制等等)到列对象中,加入后修改列对象的有关属性(其中要用到的最重要的列对象属性有CurrentControl特性、Sparse特性以及Visible特性等等)便可利用新的控制所提供的输入界面来进行数据的输入。下面结合一段实例程序来详细说明使用GRID控制可用到的一些高级技巧。

 

(一) 首先,对例程中所用到的三个数据表文件作简要说明。三个文件中CB_CP.DBF是产品目录库,CB_DD.DBF是生产工作令单库,CB_DY.DBF是期末生产完工情况库,它是例程中用到的主数据文件。为了计算产成品(包括自制半成品)的生产成本,必须对本月投产的产品确定其完工产量以及未完工的在产品数量和在产品的完工程度,其输入数据均保存在CB_DY.DBF中,因此,CB_DY.DBF文件的记录是现成的,而且其“生产对象”字段的内容也是已知的,只是需要往每条记录中输入每种生产对象的完工产量、期末在产品数量以及完工程度等数据。值得注意的是,CB_DY.DBF的“生产对象”字段其实际内容分成两类,一类是产成品、自制半成品的编号即“产品编号”,而另一类则是工作令单的编号即"批号”,若为产品编号的话,根据该值可在产品目录库中找到产品名称,而若是批号的话,则不能直接在产品目录中找到产品名称,而必须先通过该批号值在CB_DD.DBF中寻找对应的工作令单,找到后再根据该工作令单所对应的产品编号值(由CD_DD.DBF文件中的“产品编号”字段提供)搜寻产品目录库从而获得该“生产对象”的名称即产品名称。

 

(二) 为了完成以上的数据输入工作,同时保证数据输入的方便性,例程采用了GRID控制来设计输入界面:第一栏(Column1)为生产对象,其数据来源于CB_DY的生产对象字段,其栏目标题为“产品编号或工作令单批号”;第二栏(Column2)为产品名称,其数据来源构造比较特殊,设计时采用了IIF函数两重嵌套,表达式为IIF(Upper(Left(CB_DY.生产对象,1))$"BC",CB_CP.名称,IIF(Seek(CB_DD.产品编号,"CB_CP"), CB_CP.名称

控件使用 1、鼠标经过行的时候改变该行的样式,鼠标离开行的时候恢复该行的样式 使用方法(设置属性): MouseOverCssClass - 鼠标经过行时行的 CSS 类名 2、对多个字段进行复合排序;升序、降序的排序状态提示 使用方法(设置SmartSorting复合属性): AllowSortTip - 是否启用排序提示 AllowMultiSorting - 是否启用复合排序 SortAscImageUrl - 升序提示图片的URL(不设置则使用默认图片) SortDescImageUrl - 降序提示图片的URL(不设置则使用默认图片) SortAscText - 升序提示文本 SortDescText - 降序提示文本 3、根据按钮的CommandName设置其客户端属性 使用方法(设置ClientButtons集合属性): BoundCommandName - 需要绑定的CommandName AttributeKey - 属性的名称 AttributeValue - 属性的值(两个占位符:{0} - CommandArgument;{1} - Text) Position - 属性的值的位置 4、联动复选框(复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框为选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态。如果指定的所有子复选框为均选中状态,则设置指定的父复选框为选中状态;如果指定的所有子复选框至少有一个为取消选中状态,则设置指定的父复选框为取消选中状态 使用方法(设置CascadeCheckboxes集合属性): ParentCheckboxID - 模板列中 父复选框ID ChildCheckboxID - 模板列中 子复选框ID CashBox.Helper.WebGrid中的静态方法 List GetCheckedDataKey(GridView gv, int columnIndex) List GetCheckedDataKey(GridView gv, string checkboxId) 5、固定指定行、指定列,根据RowType固定行,根据RowState固定行 使用方法(设置FixRowColumn复合属性): FixRowType - 需要固定的行的RowType(用逗号“,”分隔) FixRowState - 需要固定的行的RowState(用逗号“,”分隔) FixRows - 需要固定的行的索引(用逗号“,”分隔) FixColumns - 需要固定的列的索引(用逗号“,”分隔) TableWidth - 表格的宽度 TableHeight - 表格的高度 6、响应行的单击事件和双击事件,并在服务端处理 使用方法(设置属性): BoundRowClickCommandName - 行的单击事件需要绑定的CommandName BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName 7、行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式 使用方法(设置CheckedRowCssClass复合属性): CheckBoxID - 模板列中 数据行的复选框ID CssClass - 选中的行的 CSS 类名 8、导出数据源的数据为Excel、Word或Text(应保证数据源的类型为DataTable或DataSet) 使用方法: 为WebGrid添加的方法 Export(string fileName) Export(string fileName, ExportFormat exportFormat) Export(string fileName, ExportFormat exportFormat, Encoding encoding) Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding) Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding) Export(string fileName, string[] columnNameList, ExportFormat exportFormat, Encoding encoding) Export(string fileName, strin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值