2009-08-04 39 views

回答

3

我還沒有比較性能.NET 1.1以來的各種數據可視化控件。但是,如果您計劃在一組非常大的數據集上使用這些控件之一,那麼這是需要注意的。

中繼器具有最簡單,最簡化的功能,不會將任何內容添加到您未明確告訴它的標記中。如果你給它一個數據讀取器作爲它的數據源,那麼它可能是最高性能的組合(儘管最缺乏特性)。

我想這並沒有完全回答你的問題,但引發了更多的問題。

但是...是值得努力創建自定義分頁,或使用listview/datapager組合的內置功能?有時候,我認爲這是值得的去定製。

需要擔心的一件事是DataPager控件在頁面之間導航時使用回發。

IMO,回發是處理分頁的一種糟糕的方式。原因如下:

1.)用戶無法在其瀏覽器歷史記錄中向後按&向前按鈕的頁面之間進行導航,而不會收到有關重新提交表單數據的煩人消息。

2.)搜索引擎無法單獨爲每頁結果編制索引,因爲它們都使用相同的URL。

至少在自定義解決方案中,您可以通過爲每個頁面使用querystrings來解決所有這些問題。

我在回答this question時會談到這些相同的問題。

1

imho ListView通常更好,因爲你可以更好地定製它。

1

您也可以使用獲得的轉發器分頁一個PagedDataSource

+0

是的,但如果我需要更高級的尋呼機,例如在下一個和上一個按鈕之間顯示尋呼的尋呼機。在不使用帶有DataPagerControl的ListView的情況下,編程開銷會不會增加? – 2009-08-04 15:30:04

+0

我不能說我已經使用ListView控件並查看了我見過的示例,它看起來基本上是我在過去用Repeater完成的,並且自己實現了分頁,但顯然只需較少的代碼開銷。看起來如果你有ListView(即ASP.NET 3.5+),使用它,否則使用Repeater。 – 2009-08-04 15:47:10

1

你可以使用ListView或Repeater成功 - 我認爲重要的問題是你將如何實現分頁?您的來源中有多少記錄信息?

這將是超級簡單的巴掌DataPager到一個ListView,設置一些屬性和分頁...與每個頁面實際上查詢所有您的記錄,其中大部分被DataPager拋出。這在很多情況下可能都很好,但如果您有很多記錄,則可能不適合。

DataPager確實支持自定義分頁(see this),您可以自己完成骯髒的工作(設置SQL語句/ sprocs實際上一次只返回一個「頁面」結果),但這是一些工作。此時,將其與Repeater一起使用並不複雜,除非您必須在中繼器上渲染/計算您自己的分頁控件/鏈接。

我不太熟悉的PagedDataSource,但我不相信你可以實現自定義分頁,所以它可能就像默認的DataPager(只有它可以與DataReader一起使用)。

所以得出結論,無論是ListView或Repeater都可以工作,而且非常相似。 ListView w /默認DataPager將可以與Repeater/PagedDataSource相媲美,並且具有自定義分頁的DataPager的ListView可以與具有滾動自己的分頁代碼的Repeater相媲美。

0

ListView被設計爲Repeater的.Net 3.5替代品。如果您正在編寫新代碼,請使用ListView。

在C#書中的Apress Pro ASP.Net觸及了這一點。

相關問題