ASP.NETMVCでサイトを構築しています。StackOverflowが投稿を表示する方法を複製するつもりです。これらの人はASP.NETMVCでリピーターコントロールを使用していますか?レンダリングされるマークアップを完全に制御したいのですが、ページネーションも必要です。
そのような場合の最善のアプローチは何ですか。
ASP.NETMVCでサイトを構築しています。StackOverflowが投稿を表示する方法を複製するつもりです。これらの人はASP.NETMVCでリピーターコントロールを使用していますか?レンダリングされるマークアップを完全に制御したいのですが、ページネーションも必要です。
そのような場合の最善のアプローチは何ですか。
MVCでは、コントローラー(または、コントローラーから呼び出された関数内のリポジトリ)でのLINQクエリ、ビューでのforループ、および表示するアイテムの複雑さに応じて、組み合わせを使用することをお勧めします。は、ループ内の部分ビューです。
ページネーションの場合、開始パラメーターとカウントパラメーターを関数に渡して、LINQを介してオブジェクトのリストのセクションを取得できます。例えば:
Function sliceList(ByVal startIndex As Integer, ByVal count As Integer) As Generic.List(Of myObject)
Dim FullObjectList As Generic.List(Of myObject) = GetObjectsFromSomewhere()
Dim returnList As New Generic.List(Of myObject)
returnList = From o In FullObjectList Skip startIndex Take count
Return returnList
End Function
次に、コントローラーは返されたリストを表示用のビューに渡し、ループしてアイテムを表示します。
お役に立てれば。
StackOverflowがどのように実装するかはわかりませんが、asp.netコントロールを使用する必要はありません。
もちろん、独自のポケットベルを作成する必要があります。
NerdDinnerチュートリアルを見てください。ページリストを作成する方法を示すセクションがあります。 http://weblogs.asp.net/scottgu/archive/2009/04/28/free-asp-net-mvc-nerddinner-tutorial-now-in-html.aspx
非常に簡単で、すべてのマークアップを完全に制御できます。実際、ほとんどすべてのマークアップを提供する必要がありますが、asp.netによって生成されるマークアップはほとんどありません。