2011-12-14 2 views
1

Я использовал DataPager на странице через ListView данных. Когда ListView связано, DataPager показать много страниц ниже, все кажется нормально, но когда я нажимаю на другую страницу, после обратной передачи ListView пуст с EmptyDataTemplate и, конечно же, без страниц.ASP.NET - ListView и DataPager не работают

Я гугл и попробовать один и оба обходные ниже, но они не помогли

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) 
     {    
     }    
    } 

В моем случае, данные ListView «s связанные в случае щелчка, а не на PageLoad.

Любой может мне помочь? Спасибо огромное!

ответ

0

Вы не показываете, как ViewState[ViewState[VIEWSTATE_DATASET] получает комплект. Я предполагаю, что это становится сброс к null на постбэк и вы глотание Exception, что, вероятно, поднятые на этой линии, пытаясь бросить нулевое значение:

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

Перед привязкой 'dataset' к ListView я назначил ViewState [VIEWSTATE_DATASET] = набор данных. Я уверен, что ViewState [VIEWSTATE_DATASET]! = Null. – Wayne

1

его просто, просто получить «ID» в «query- STRING»из базы данных, теперь установите его свойство элемента управления пейджера в [QueryStringField="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> 

Примечание: если не WOKING, а затем установить также [PagedControlID="ListView_Name"].

Смежные вопросы