您现在的位置是:首页 >技术交流 >为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展网站首页技术交流

为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展

老田低代码 2023-07-01 08:00:02
简介为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展

我们的低代码开发平台从一开始决定做的时候,就追求未来能够支持多种类型的客户端,目前支持Winform,Web,H5,FlutterAPP,当然了,未来也有可能会随着实际的需要淘汰掉一些客户端的。

为了系统更易于维护,减少其对第三方的依赖风险,我们总是坚持着“能自己实现的一定不要依赖于第三方”,所以我们低代码平台本身的各种控件,都是基于.NET Framework自带的基础组件进行扩展而来,虽然多写了一些代码,但是最终的结果还是很值得的,整个客户端,开发平台等等包都非常非常小!

为了更好地在Winform中显示各种个性化的表格,我们对DataGridView做了很多的扩展。好在DataGridView允许我们自定义列,可以使用GDI自绘单元格等等。

1、列表头合并

很多的时候,我们是希望能够对列表头进行合并显示的,这种需求往往存在于一些报表之中,比如如下的显示:

 合并列表头

2、合并单元格

自动判断某一列的内容,如果同一列多行的内容相同则自动合并显示,合并单元格的实现方式和列表头显示其实差不多,唯一不一样的是一个是表头,一个是内容。

 合并单元格

3、行分组显示

可以根据单据的父单据,实现分组显示。

 分组显示

4、单元格下拉显示自定义内容

比如某个单元格下拉,需要显示当前单据及引用单据的字段等等。

 自定义单元格下拉内容

5、单元格中显示按钮

比如可编辑子表中,需要显示按钮以便选择引用单据。

 单元格显示按钮

6、单元格显示计算器

某个数值型的单元格,显示计算器。

 单元格显示计算器

还有很多很多的扩展,DataGridView本身很强大,但是却不能像Excel那样很方便地设置边框,设置每个单元格格式,所以能做的还是相对比较少,但是对于非复杂报表应用其实已经是足够了的!

比如为了实现单据转换,日期类型的字段支持设置格式化字符串

 同一个单元格中既显示文本内容也显示按钮

点击单元格显示完全自定义的下拉选择框

 总之,为了尽可能减少对第三方的依赖,我们对DataGridView做了很多很多的扩展,这些扩展对其他的朋友同样有借鉴意义。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。