2014-02-06 38 views
3

我有一個ListView控件如下(張貼在這裏,我已經從我的ItemTemplate刪除的值):ASP.NET ListView的分頁:無效的視圖狀態

<asp:ListView ID="ListView1" runat="server" DataSourceID="MyDataSource"> 
    <LayoutTemplate> 
    <div id="requests" runat="server"> 
     <asp:Panel runat="server" id="itemPlaceholder"></asp:Panel> 
    </div> 
    <asp:DataPager runat="server" ID="DataPager" PageSize="3"> 
     <Fields> 
      <asp:NumericPagerField ButtonCount="10" PreviousPageText="<--" NextPageText="-->" /> 
     </Fields> 
    </asp:DataPager> 
    </LayoutTemplate> 
    <ItemTemplate> 
    <div ID="itemPlaceholder" class="request" runat="server"> 
     <asp:LinkButton ID="button" runat="server" Text='...' CommandName="..." 
       CommandArgument='...' OnClick="..." 
       style="..."> 
     </asp:LinkButton> - 
    </div> 
    </ItemTemplate> 
</asp:ListView> 

這ListView的存在是爲用戶控件(.ascx ),我已經嵌入到ASPX網頁中。

正如我所料,當網頁加載時,對於9個項目的列表,我得到3頁3項。

當我點擊進入下一頁時,頁面正確加載下一組物品......但只是短暫的一秒鐘。然後發生一件奇怪的事情。該頁面在頁面內部嵌入一個自身副本6次,每個頁面位於頁面內部窗體中的一個字段下。

如果我然後嘗試去到下一個或前一頁,將出現一個ASP.NET服務器錯誤:

狀態信息是這個頁面無效,可能已損壞。

在棧跟蹤,它顯示以下錯誤:

出現FormatException:輸入不是有效的Base-64字符串,因爲它含有非基本字符,兩個以上的填充字符,或者填充字符中的非空白字符。

ViewStateException:無效的視圖狀態。

我能夠在我的瀏覽器,IE8和Chrome上覆制它。

+0

看起來這個問題是在數據綁定。請提供服務器代碼和數據源代碼。 –

回答

0

您使用的ListView事件OnPagePropertiesChanging

這樣

<asp:ListView ID="lvCustomers" runat="server" GroupPlaceholderID="groupPlaceHolder1" 
ItemPlaceholderID="itemPlaceHolder1" OnPagePropertiesChanging="OnPagePropertiesChanging"> 
在aspx.cs

protected void OnPagePropertiesChanging(object sender,PagePropertiesChangingEventArgs e) 
{ 
    (lvCustomers.FindControl("DataPager1") as DataPager).SetPageProperties(e.StartRowIndex, e.MaximumRows, false); 
this.BindListView(); 
} 

BindListView()

是方法綁定列表視圖

visit this link for example

我希望它是有用的

+0

它的工作時,你的數據綁定是正確的....給一些代碼,所以我會給出適當的解決方案謝謝 –

相關問題