2013-05-09 4 views
0

at codeproject 자습서를 따라 문제를 발견했습니다.목록보기로 페이징이 작동하지 않습니다

나는 내 사이트의 모든 현재 구성원 이름을 나열하는 ListView 가지고 :

<asp:ListView ID="lstMembers" runat="server"> 
    <LayoutTemplate> 
     <table> 
      <tr> 
       <th>Name</th> 
      </tr> 
      <tr id="itemPlaceholder" runat="server"></tr> 
     </table> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <tr> 
      <td> 
       <%# Eval("MemberName") %> 
      </td> 
     </tr> 
    </ItemTemplate> 

</asp:ListView> 

그리고 아래에 DataPager :

<asp:DataPager ID="DataPagerProducts" runat="server" PagedControlID="lstMembers" 
    PageSize="3" OnPreRender="DataPagerProducts_PreRender"> 
    <Fields> 
     <asp:NumericPagerField /> 
    </Fields> 
</asp:DataPager> 

내가 사용하고있는 것처럼 (목록에 바인딩 다음 튜토리얼 별) :

List<Members> member = new List<Members>(); 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(Page.IsPostBack) return; 

    DisplayMembers(); 
} 

private void DisplayMembers() 
{ 
    const string strSql = "SELECT DISTINCT [id], [memberNickname] FROM vwGetMemberDetails ORDER BY [memberNickname]"; 
    SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text }; 

    SqlDataReader rdr = sqlComm.ExecuteReader(); 
    while (rdr.Read()) 
    { 
     member.Add(new Members 
      { 
       MemberId = rdr["id"], 
       MemberName = rdr["memberNickname"] 
      }); 
    } 

    rdr.Close(); 
    DataConn.Disconnect(); 
} 

private class Members 
{ 
    public object MemberId { get; set; } 
    public object MemberName { get; set; } 
} 

protected void DataPagerProducts_PreRender(object sender, EventArgs e) 
{ 
    lstMembers.DataSource = member; 
    lstMembers.DataBind(); 
} 

현재 2 개의 번호가 있습니다. s를 호출합니다. 그러나 2를 클릭 할 때마다 List에 아무 것도 표시되지 않고 Pager이 사라집니다.

나는 보통 Repeater 컨트롤의 빈번한 직원이며,이 방법을 단순히 '쉬운'방법으로 만 사용하고 있습니다.

어디서 잘못 알 수 있습니까?

답변

1

변수 modelDataPagerProducts_PreRender에서 업데이트되지 않으므로 항상 페이지로드에 이미로드 된 동일한 데이터 세트를 표시합니다.

편집


if(Page.IsPostBack) return;을 제거하거나 나를 위해

+0

감사이 작동합니다 DataPagerProducts_PreRender 내부 DisplayMembers()를 호출하는 통찰력을위한 ... 주에'은'데이터 바인딩()을두고 있지만 메서드 나던 중 하나를 작동합니다. – TheGeekZn

+0

편집 해 주셔서 감사합니다. – TheGeekZn

+0

이 자습서에서는 사용자 지정 페이지 매김을 수행 할 수 있습니다. http://tutorials.cmsnsoftware.com/2011/07/how-to-use-custom-pagination.html –

관련 문제