2010-11-19 10 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">");을 어떻게 처리합니까? 어떻게 작동합니까?

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

: 그리고 내가 페이징 그래도 작업을 위해 데이터 소스를 위해 어떤 종류의 열거 인터페이스를하는 것을 두려워

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

내 댓글에 대해서는

+0

사용자 지정 컨트롤로 채워진 DataTable을 반환하는 함수를 만들어 GridView의 데이터 소스로 설정할 수 있습니다. 이렇게하면 GridView의 페이징 기능을 사용할 수 있습니다. – clifgriffin

답변

0

.

이것이 실패하면 일반적인 페이징 기술을 읽고 수동으로 구현하는 것이 좋습니다. 당신이 생각하는 것만 큼 어렵지는 않습니다.

+0

내 모델이 열거되지 않기 때문에 아마도 작동하지 않을 것입니다. –

+0

이 컬렉션을 어떻게 열거 할 수 있습니까? –

관련 문제