溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

比較JqGrid與XtraGrid

發(fā)布時(shí)間:2020-05-27 16:46:53 來(lái)源:網(wǎng)絡(luò) 閱讀:510 作者:張立達(dá) 欄目:網(wǎng)絡(luò)安全

此只能比較兩者的功能優(yōu)劣,實(shí)現(xiàn)某種功能、效果的方便性和效率。首先分別粗略介紹XtraGrid和jqGrid

  DevExpress是目前.net下最為強(qiáng)大和完整的UI控件庫(kù), XtraGrid是這個(gè)控件庫(kù)中重要的控件之一。在XtraGrid中集成了大量的高級(jí)特征,所以使用它進(jìn)行開(kāi)發(fā)的人員只需要對(duì)其屬性進(jìn)行簡(jiǎn)單的設(shè)置或編 寫少量的代碼,就能創(chuàng)建出十分美觀的界面,從而使開(kāi)發(fā)的工作效率大幅提高。

  特點(diǎn)如下

  • 完全支持ADO.NET,一閃而過(guò)的數(shù)據(jù)裝入速度,XtraGrid充分利用內(nèi)建的ADO.NET功能。使用這些新的數(shù)據(jù)訪問(wèn)架構(gòu)并且內(nèi)部數(shù)據(jù)模塊與數(shù)據(jù)表達(dá)分離,在任何數(shù)據(jù)裝入模式下XtraGrid不 使用任何額外的緩沖,即使當(dāng)列分組時(shí),XtraGrid使用很小的內(nèi)存并執(zhí)行請(qǐng)求操作與從數(shù)據(jù)源獲取數(shù)據(jù)一樣快速。

  • 高級(jí)非綁定模式支持 , XtraGrid可以和所有支持List或ITypedList以及其繼承接口一起工作。

  • 帶狀的/漂亮的列, 當(dāng)屏幕顯得很很珍貴時(shí),您能夠用帶狀列最大化可見(jiàn)列的數(shù)量呈現(xiàn)給客戶。您甚至非常容易和簡(jiǎn)單地能夠在列頭顯示圖像。

  • 自動(dòng)數(shù)據(jù)分組并支持連接點(diǎn)分組 ,允許您的用戶分組儲(chǔ)存在XtraGrid中的數(shù)據(jù),而且列無(wú)限制,使他們能夠從未有過(guò)的分析和編輯信息功能。

  • 自動(dòng)列分組,利用XtraGrid,您能夠排序無(wú)限制數(shù)量的列,不需要寫一行代碼;

  • 自動(dòng)數(shù)據(jù)過(guò)濾 , 通過(guò)類似Excel風(fēng)格的過(guò)濾特征,您能夠基于列內(nèi)容過(guò)濾數(shù)據(jù) - 任何列。過(guò)濾表達(dá)式甚至可以顯示在網(wǎng)格的底部,提醒您的用戶他們正在查詢什么內(nèi)容。您還能夠創(chuàng)建您自定義的過(guò)濾對(duì)話框匹配用戶需要的過(guò)濾特征。

  • 真正主細(xì)數(shù)據(jù)支持(Master-Detail) , XtraGrid允許您在綁定或非綁定模式下建立和表示主細(xì)(master-detail)信息,您甚至能夠使用下拉模式放縮每個(gè)細(xì)項(xiàng)級(jí),允許簡(jiǎn)單的維護(hù)最復(fù)雜的關(guān)系設(shè)置。

  • CustomDraw自定義繪制, 需要繪制任何Grid對(duì)象 - 行、列頭等?用XtraGrid沒(méi)問(wèn)題,只有您的想象是限制。

  • 高級(jí)設(shè)計(jì)時(shí)支持 , XtraGrid提供高級(jí)的設(shè)計(jì)時(shí)編輯器,允許您控制所有XtraGrid的外觀而不需要寫任何一行代碼。使用高級(jí)設(shè)計(jì)時(shí)支持您能夠管理高級(jí)特征如級(jí)、風(fēng)格、列和概括等。

  • 完全的數(shù)據(jù)概括, 概括允許您直接在Grid中表示統(tǒng)計(jì)信息如MIN, MAX, AVG, SUM和COUNT而不必采用古老而難看的單獨(dú)的edit控件。您甚至允許您的用戶用分組頭和注腳概括分塊數(shù)據(jù)。

  • 基于View的架構(gòu), 在XtraGrid中的每一級(jí)能夠通過(guò)不同的View表達(dá)。XtraGrid使用標(biāo)準(zhǔn)的行列View以及CardView,類似Microsoft Outlook。所有Views都能夠很快的改變。

  • 每列多種編輯器 - XtraGrid的同一列可以使用不同的編輯器。

 

 

 

  jqGrid是一個(gè)jQueryplugin,提供grid操作界面,并支持經(jīng)Ajax連結(jié)服務(wù)器上的資料源。jqGrid在共同的基礎(chǔ)結(jié)構(gòu)上,提供數(shù)種操作模式,分別包裝于不同的檔案之中。除了共享的數(shù)個(gè)檔案之外,使用者按需要選擇操作模式,并使用對(duì)應(yīng)的程序檔??上Ц鞑僮髂J街g常見(jiàn)功能雷同之處,程序重用性卻未進(jìn)一步整合、提升,而各模式的更新速度也不太一致。

  特點(diǎn)如下

  • 完整的表格呈現(xiàn)與運(yùn)算功能,包含換頁(yè)、欄位排序、grouping、新增、修改及刪除資料等功能。

  • 客制化的工具列。 

  • 預(yù)設(shè)的Navigator 工具列,可以很容易的使用新增、刪除、編輯、檢視及搜尋等功能。 

  • 完整的分頁(yè)功能。 

  • 按下任一欄位的標(biāo)頭,皆可以該欄位為排序項(xiàng)目。無(wú)論是升冪或降冪皆可。 

  • 預(yù)設(shè)的action formatter,可以快速而直覺(jué)地對(duì)每筆資料做運(yùn)算。 

  • 除了jqGrid lib 所提供之formatter(包括email,linkselect,checkbox,date 外,開(kāi)發(fā)者可以從資料來(lái)源自訂資料顯現(xiàn)方式,即所謂的custom formatter

   

兩者的不同歸結(jié)為以下方面:

表格視圖

  XtraGrid中有4種類型的View,它們分別是:GridView(二維表格視圖)、BandedGridView(帶狀二維表格視圖)、AdvBandedGridView(高級(jí)的帶狀二維表格視圖,增加了一些操作功能)、CardView(卡片視圖)。這4種類型的View都是從ColumnView中繼承而來(lái),而ColumnView又是從BaseView繼承來(lái)的。其中BaseView和ColumnView都是抽象類(abstract),不能實(shí)例化。

  由于每種視圖都是一個(gè)類,它們對(duì)基類ColumnView重寫不盡相同,故某些效果在一種視圖上可以實(shí)現(xiàn),換了另一種視圖就不行了。

  jqGrid同樣也有二維表格視圖,帶狀二維表格視圖,樹(shù)狀視圖。

  對(duì)于二維表格視圖與帶狀表格視圖,它們的區(qū)別只在于在屬性處添加多一個(gè)表頭分組,對(duì)表格的操作完全一樣,故更換視圖的類型后其實(shí)現(xiàn)功能和效果不會(huì)有差異。

模板列

     XtraGrid提供比較豐富的模板列類型,但是在自定義模板方面就欠缺了,一個(gè)模板列只能使用一種類型,比如在一個(gè)列里頭想放一個(gè)不可編輯的文本框,一個(gè)圖片按鈕,還有一個(gè)日歷控件,這樣就辦不到了。而且那個(gè)模板列里只能使用XtraGrid它定義的那套模板列類型,想使用自己定義的類型或者用微軟原本定義的控件也不行。用它原本的控件好處是get/set值比較方便,同時(shí)也使得模板沒(méi)辦法使用別的控件。

  jqGrid它本身沒(méi)有提供模板列類型,就像.NET本身的GridView那樣,可以往模板里添加多個(gè)控件,個(gè)人感覺(jué)jqGrid的模板列很自由很開(kāi)放,可以在模板中可以放置一個(gè)或多個(gè)控件,可以是自己寫的,也可以是其他的插件。

分頁(yè)

  XtraGrid提供了分頁(yè)欄,只需要把gridControl 的UseEmbeddedNavigator 屬性設(shè)為true則可。XtraGrid實(shí)現(xiàn)分頁(yè)功能有兩種辦法,一種則是利用XtraGrid本身的Server Mode模式 。但這種方式有諸多弊端:1)不能編輯、增加、刪除數(shù)據(jù); 2)不能通過(guò)顯示值來(lái)進(jìn)行排列和過(guò)濾數(shù)據(jù)(但可以用編輯值來(lái)進(jìn)行這些操作);3)用戶排序時(shí)不觸發(fā)ColumnView.CustomColumnSort事件; 4)用戶分組時(shí)不觸發(fā)GridView.CustomColumnGroup事件; 5)用戶計(jì)算匯總時(shí)不觸發(fā)GridView.CustomSummaryCalculate事件; 6)在Server Mode模式下,數(shù)據(jù)表的主鍵不能由多個(gè)列組合而成。另一種方式就是利用SQL的分頁(yè)查詢。

  jqGrid也提供了分頁(yè)欄,它的分頁(yè)方式與XtraGrid的第二種方式類似,采用SQL的分頁(yè)查詢。

  個(gè)人認(rèn)為采用SQL分頁(yè)查詢來(lái)實(shí)現(xiàn)分頁(yè)這方式比較好,即使XtraGrid的Server Mode模式不存在那么多的弊端,使用了Server Mode模式,萬(wàn)一將來(lái)的某一天更換了控件,甚至從C/S模式換成B/S模式,這樣要更改的代碼量會(huì)比利用SQL分頁(yè)查詢的代碼量要大。

數(shù)據(jù)源

  XtraGrid的數(shù)據(jù)源綁定與傳統(tǒng)GridView的數(shù)據(jù)源綁定有所不同,經(jīng)過(guò)綁定的操作后,XtraGrid上的數(shù)據(jù)仍然與數(shù)據(jù)源的數(shù)據(jù)同步,即修改了XtraGrid里的數(shù)據(jù),數(shù)據(jù)源的數(shù)據(jù)也同樣會(huì)被修改,修改了數(shù)據(jù)源的數(shù)據(jù),XtraGrid里的數(shù)據(jù)也會(huì)跟著被修改。而且它可以很方便地獲取到某一行記錄的對(duì)象,比如將一個(gè)List<People>綁定到XtraGrid中,XtraGrid可以通過(guò) GetRow 方法獲取某行的People對(duì)象。還有一個(gè)優(yōu)點(diǎn)就是若想批量修改某些數(shù)據(jù),可直接對(duì)數(shù)據(jù)源進(jìn)行操作,這樣就不需要遍歷單元格去修改。

  jqGrid綁定了數(shù)據(jù)源之后,表格里的數(shù)據(jù)與數(shù)據(jù)的數(shù)據(jù)就與GridView的情況一樣,兩者是不相關(guān)的,修改了一方的數(shù)據(jù),對(duì)另一方?jīng)]有任何影響。

 

 

總結(jié) 

  綜合了jqGridXtraGrid的優(yōu)點(diǎn),個(gè)人認(rèn)為一個(gè)好的網(wǎng)格類控件(或插件)除了有絢麗的外觀以外,還應(yīng)該具備以下功能:

  • 具有統(tǒng)計(jì)運(yùn)算的功能;

  • 具有父子表的功能;

  • 對(duì)某列排序,分組,篩選功能;

  • 提供工具欄方便增刪改查操作;

  • 擁有多種分頁(yè)讀取數(shù)據(jù)功能(如傳統(tǒng)的通過(guò)分頁(yè)欄讀數(shù)據(jù)和通過(guò)滾動(dòng)條控制分頁(yè)度數(shù)據(jù));

  • 支持多種類型的數(shù)據(jù)集合作為數(shù)據(jù)源;

  • 能夠方便地獲取到單元格的信息;

  • 對(duì)表格數(shù)據(jù)的更改能同步到原本綁定的數(shù)據(jù)源集合中;

  • 提供簡(jiǎn)便的方法對(duì)數(shù)據(jù)的格式進(jìn)行驗(yàn)證;

  • 方便數(shù)據(jù)導(dǎo)入導(dǎo)出;

  • 能夠方便地設(shè)置條帶狀的列;

  • 提供多種編輯器;

  • 模板允許多種編輯器自由組合使用,而且可以添加任意的控件(插件進(jìn)入模板);

  • 支持快捷鍵操作,減少用戶在鼠標(biāo)與鍵盤上切換;

  • 根據(jù)用戶需要對(duì)列的先后順序進(jìn)行重新排列;

以上純屬個(gè)人看法,有什么不足缺漏或錯(cuò)誤的,歡迎指正。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI