雖然分頁(yè)控件滿天飛,因?yàn)閷?shí)在沒(méi)找到WinForm程序合用的,所以就造了一回輪子。一開(kāi)始認(rèn)為這個(gè)事情比較簡(jiǎn)單,沒(méi)有思考太多就開(kāi)工了。事實(shí)上也沒(méi)花多少時(shí)間就寫(xiě)好了第一版,想要有的功能也都實(shí)現(xiàn)了,以為萬(wàn)事大吉。。。。。??丶臉幼娱L(zhǎng)這樣:
軟件開(kāi)發(fā)法則之一:如果一件事情特別順利,那么一定會(huì)有一些坑在等著你!坑的大小和順利程度成正比。
果不其然,在前幾天的業(yè)務(wù)模塊重構(gòu)時(shí)就掉分頁(yè)的坑里面了,切換每頁(yè)行數(shù)后總是加載兩次數(shù)據(jù)。問(wèn)題的原因也很簡(jiǎn)單,加載數(shù)據(jù)的事件被觸發(fā)了兩次??浚磥?lái)這里業(yè)務(wù)邏輯有大問(wèn)題??!再看別的地方邏輯,也有問(wèn)題?。?!剛好遇到周末,于是,就開(kāi)始一通全面梳理。怎么梳理呢?還是從需求出發(fā)。
需求一:可以設(shè)置每頁(yè)顯示行數(shù)
修改了每頁(yè)顯示行數(shù)后,需要反饋到ViewModel,好根據(jù)新的顯示行數(shù)重新加載數(shù)據(jù)。等一下!似乎有的時(shí)候也不需要刷新數(shù)據(jù)吧?譬如當(dāng)前每頁(yè)顯示20行,但總數(shù)只有10行,這個(gè)時(shí)候切換成每頁(yè)100行,它還是只能顯示10行啊。這個(gè)時(shí)候就不需要重新加載數(shù)據(jù),能省就省啊。這個(gè)時(shí)候不去刷新數(shù)據(jù),不但提高效率,體驗(yàn)也更好。
需求二:可以切換頁(yè)碼,首頁(yè)|上一頁(yè)|下一頁(yè)|末頁(yè)|到[x]頁(yè)