2010-11-19 12 views
2

ユーザーコントロールをページングする必要があります.8または10のグループはすばらしく見えるはずです。ユーザーコントロールにページングを追加するにはどうすればよいですか?

<asp:PlaceHolder ID="ProfileContainer" runat="server"></asp:PlaceHolder> 

そしてプレースホルダは、次のように移入さ::現在、彼らは、プレースホルダにいる

var model = //LINQ to Entities query 

foreach(var profile in model) { 
    Controls_Profile profile = (Controls_Profile)Page.LoadControl("~/Controls/Profile.ascx"); 

    profile.Name = model.Name; 
    //more properties 
    ProfileContainer.Controls.Add(profile); 
} 

は、どのようにイベントでの私のページの結果は、私は、プロファイルの数百を持つことができますか?私が見つけたほとんどの投稿は、テーブルをページングするだけのカスタムページングコントロールの作成に関連しています。

私は<div id="Group1">で最初のコントロールの先頭にカウンターを作成することを考えました。 8または10のコントロールの後に、</div>を追加します。私はjQueryを使って前/次のリンクを挿入し、グループ番号に基づいてフローを制御することができました。しかし、コントロールが追加されているので、ループの途中でResponse.Write("<div id="groupx">");をどうすればいいですか?それはどのように働くでしょうか?

+0

カスタムコントロールで設定されたDataTableを返す関数を作成し、GridViewのデータソースとして設定できます。これにより、GridViewのページング機能を使用することができます。 – clifgriffin

答えて

0

私のコメントについて:

public DataTable getControls() 
{ 
    DataTable dt = new DataTable(); 
    //Code to populate table 
    return dt; 
} 

そして:

<asp:GridView ID="YourGridView" AllowPaging="true" DataSource='<%# getControls() %>'></asp:GridView> 

私はあなたのデータソースがが動作するようにページングするためのために、いくつかの種類の列挙インタフェースを有していなければならないことを恐れています。

これが失敗した場合は、一般的なページング手法を読み、マニュアルを実装することをお勧めします。あなたが考えるほど難しくない。

+0

私のモデルは列挙できませんので、これはうまくいきません。 –

+0

このコレクションを列挙できるようにするにはどうすればよいですか? –

関連する問題