【问题标题】:ASP.NET ListView Paging : Invalid viewstateASP.NET ListView 分页:无效的视图状态
【发布时间】:2014-03-03 07:23:40
【问题描述】:

我有一个 ListView 控件,如下所示(为了在此处发布,我已从 ItemTemplate 中删除了值):

<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 上复制它。

【问题讨论】:

  • 看起来问题出在数据绑定中。请提供服务器代码和数据源代码。

标签: asp.net asp.net-controls


【解决方案1】:

你使用 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

希望对你有帮助

【讨论】:

  • 当你的数据绑定正确时它就可以工作了....给一些代码,我会给出正确的解决方案谢谢
猜你喜欢
  • 1970-01-01
  • 2014-10-05
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多