為了做低代碼平臺,這些年我們對.NET的DataGridView做的那些擴(kuò)展(.net 低代碼開發(fā)平臺)
我們的低代碼開發(fā)平臺從一開始決定做的時(shí)候,就追求未來能夠支持多種類型的客戶端,目前支持Winform,Web,H5,F(xiàn)lutterAPP,當(dāng)然了,未來也有可能會隨著實(shí)際的需要淘汰掉一些客戶端的。
為了系統(tǒng)更易于維護(hù),減少其對第三方的依賴風(fēng)險(xiǎn),我們總是堅(jiān)持著“能自己實(shí)現(xiàn)的一定不要依賴于第三方”,所以我們低代碼平臺本身的各種控件,都是基于.NET Framework自帶的基礎(chǔ)組件進(jìn)行擴(kuò)展而來,雖然多寫了一些代碼,但是最終的結(jié)果還是很值得的,整個(gè)客戶端,開發(fā)平臺等等包都非常非常小!
為了更好地在Winform中顯示各種個(gè)性化的表格,我們對DataGridView做了很多的擴(kuò)展。好在DataGridView允許我們自定義列,可以使用GDI自繪單元格等等。
1、列表頭合并
很多的時(shí)候,我們是希望能夠?qū)α斜眍^進(jìn)行合并顯示的,這種需求往往存在于一些報(bào)表之中,比如如下的顯示:
列表頭合并
2、合并單元格
自動判斷某一列的內(nèi)容,如果同一列多行的內(nèi)容相同則自動合并顯示,合并單元格的實(shí)現(xiàn)方式和列表頭顯示其實(shí)差不多,唯一不一樣的是一個(gè)是表頭,一個(gè)是內(nèi)容。
合并單元格
3、行分組顯示
可以根據(jù)單據(jù)的父單據(jù),實(shí)現(xiàn)分組顯示。
分組顯示
4、單元格下拉顯示自定義內(nèi)容
比如某個(gè)單元格下拉,需要顯示當(dāng)前單據(jù)及引用單據(jù)的字段等等。
自定義單元格下拉內(nèi)容
5、單元格中顯示按鈕
比如可編輯子表中,需要顯示按鈕以便選擇引用單據(jù)。
單元格顯示按鈕
6、單元格顯示計(jì)算器
某個(gè)數(shù)值型的單元格,顯示計(jì)算器。
單元格顯示計(jì)算器
還有很多很多的擴(kuò)展,DataGridView本身很強(qiáng)大,但是卻不能像Excel那樣很方便地設(shè)置邊框,設(shè)置每個(gè)單元格格式,所以能做的還是相對比較少,但是對于非復(fù)雜報(bào)表應(yīng)用其實(shí)已經(jīng)是足夠了的!