2012-06-23 2 views
0

3 계층 아키텍처를 사용하여, 나는 다음 그래서 같이있는 gridview에 추가 객체목록 <T> 페이징 asp.net

List<object> careerList = new List<object>(); 
      ModuleDTO module = new ModuleDTO(); 
      careerList = module.getDegreeCodeByQualification(qualificationCode); 

의 목록이 있습니다

gridViewMaster.DataSource = careerList; 
      gridViewMaster.DataBind(); 

무엇 나는 좋겠 그런 다음 gridview에서 페이징을 사용하도록 설정합니다. 내 gridview에 지금까지입니다 :

<asp:GridView ID="gridViewMaster" runat="server" 
     AutoGenerateColumns="False" GridLines="None" 
     BorderWidth="1px" CellPadding="2" DataKeyNames="Grouping" 
     ForeColor="Black" 
      onrowdatabound="gridViewMaster_RowDataBound" CssClass="mGrid" PagerStyle-CssClass="pgr" 
AlternatingRowStyle-CssClass="alt" OnPageIndexChanging="gridView_PageIndexChanging" 
       AllowPaging="True" > 

가에 페이징을 가능하게 할 수있는 데이터 테이블 또는 DataView를 해당 목록을 변경하지 않고리스트의? 방법이 있다면, 이것은 많은 도움이 될 것입니다. 다음과 같이

지금까지 내 이벤트는 다음과 같습니다

protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     gridViewMaster.PageIndex = e.NewPageIndex; 
     List<object> careerList = new List<object>(); 
      ModuleDTO module = new ModuleDTO(); 
      careerList = module.getDegreeCodeByQualification(qualificationCode); 
      ModalProgress.Show(); 
      System.Threading.Thread.Sleep(1000); 
      JobPanel.Visible = true; 
      gridViewMaster.DataSource = careerList.Distinct(); 
      gridViewMaster.DataBind(); 
    } 

누군가가 저를 도와주세요! 고맙습니다.

+0

http://weblogs.asp.net/jaycentdrysdale/archive/2009/07/13/list-lt-t-gt-paging -via-linq-objects.aspx –

답변

0

List 데이터 바인딩의 GridView 페이징을 사용하는 코드가 작동했습니다.

  1. 이 코드는 당신이 그렇게처럼의 GridView에 DataKeyName로 표시해야하기 때문에 "그룹화"라는 이름의 속성 항목의 목록을 반환해야합니다 : 메시지 나 다음과 같은 검사를 수행해도 더 이상 문제가있는 경우 :

    careerList = module.getDegreeCodeByQualification (qualificationCode);

  2. 내의 GridView 코드는 다음과 같습니다

<asp:GridView ID="GridView1" runat="server" GridLines="None" BorderWidth="1px" CellPadding="2" DataKeyNames="Grouping" 
    ForeColor="Black" AllowPaging="True" 
    onpageindexchanging="GridView1_PageIndexChanging" AutoGenerateColumns="true" PageSize="2"> 
</asp:GridView> 

는 ... 새로운 "페이지 크기"와 "AutoGenerateColumns"을 참고 내가 추가 한 속성.

희망이 있습니다.

+0

감사합니다! 더 이상 컴파일러 오류가 발생하지 않습니다. 내 유일한 문제는 지금, 내 인덱스를 변경할 때 실제 인덱스를 변경하지만 내 gridview를 업데이트하지 않습니다. 데이터를 처음부터 다시로드하고 다음 인덱스가 아닌 데이터를 다시로드하기 때문입니다. 내가 뭘 제안 했어? 다시 한번, 큰 감사합니다! – user1397978

0

해결했습니다. 바보처럼 느껴지지만 틀린 gridview에 구속력이 있었지만, 당신의 대답은 완벽하게 도움이되었습니다! 너무 고마워. 여기

내가 같은 문제를 가진 다른 사람을 위해, 무슨 짓을 : 내 데이터 소스로 목록을 사용하여 내 데이터 사람이해야 같은 방법으로 바인딩

<asp:GridView ID="GridQualifications" runat="server" 
    CssClass="mGrid" PagerStyle-CssClass="pgr" 
AlternatingRowStyle-CssClass="alt" AutoGenerateColumns="false" 
    onselectedindexchanged="GridQualifications_SelectedIndexChanged" 
    AllowPaging="True" PageSize="2" OnPageIndexChanging="gridView_PageIndexChanging"> 
<AlternatingRowStyle CssClass="alt" /> 

protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     GridQualifications.PageIndex = e.NewPageIndex; 
     BindData(); 
    } 

.

그냥 안심 한 모든 스트레스

많은 감사 : D : D

+0

니스 :). 필자는 Visual Studio 디버깅 도구를 사용하여 코드를 단계별로 실행하면 철저히 10 번 중 9 번에 대한 답변을 얻을 수 있음을 알게되었습니다. – fuzzyanalysis