2011-12-14 2 views
1

DataPager를 사용하여 ListView 데이터를 통해 페이지를 이동했습니다. ListView이 바인딩되면 DataPager은 여러 페이지를 표시합니다. 모든 것이 정상적으로 보이지만 다른 페이지를 클릭하면 다시 게시 후 ListView이 비어 있으며 페이지가 없는데 EmptyDataTemplate입니다. ASP.NET - ListView 및 DataPager가 작동하지 않습니다.

내가 봤 하나 아래 모두 해결 방법을 시도하지만 그들은, 클릭 이벤트에 바인딩 ListView의 데이터를하지 PageLoad에 내 경우에는
protected void DatapPager_OnPreRender(object sender, EventArgs e) 
    { 
     try 
     { 
      listView.DataSource = ((DataSet)ViewState[VIEWSTATE_DATASET]).Tables[0]; 
      listView.DataBind(); 
     } 
     catch (System.Exception ex) 
     {    
     }    
     base.OnPreRender(e); 
    } 

    protected void listView_OnPagePropertiesChanged(object sender, EventArgs e) 
    { 
     try 
     { 
      listView.DataSource = ((DataSet)ViewState[VIEWSTATE_DATASET]).Tables[0]; 
      listView.DataBind(); 
     } 
     catch (System.Exception ex) 
     {    
     }    
    } 

도움이되지 않았다.

누구나 나를 도와 줄 수 있습니까? 정말 고맙습니다!

답변

0

ViewState[ViewState[VIEWSTATE_DATASET]이 어떻게 설정되는지 표시하지 않습니다. 내가 다시 게시에 null이 점점 리셋을 추측하고 있는데 당신은 아마 null 값을 캐스팅하려고이 라인에 제기 된 Exception을 삼키는됩니다

listView.DataSource = ((DataSet)ViewState[VIEWSTATE_DATASET]).Tables[0]; 
+0

'dataset'을 ListView에 바인딩하기 전에 ViewState [VIEWSTATE_DATASET] = dataset을 할당했습니다. ViewState [VIEWSTATE_DATASET]! = null로 확신합니다. – Wayne

1

그것의 간단한, 그냥 ""ID "를 얻기에 질의 -

<asp:DataPager ID="DataPagerProducts" runat="server" QueryStringField="ID" PageSize="3"> 
          <Fields> 
           <asp:NextPreviousPagerField ShowFirstPageButton="True" ShowNextPageButton="False" /> 
           <asp:NumericPagerField /> 
           <asp:NextPreviousPagerField ShowLastPageButton="True" ShowPreviousPageButton="False" /> 
          </Fields> 
         </asp:DataPager> 

참고 : 데이터베이스에서 STRING은 "지금과 같은 [QueryStringField="ID"]로 호출기 컨트롤 속성에 설정 워킹하지 경우, 다음도 [PagedControlID="ListView_Name"] 설정합니다.

관련 문제