ASP.NET - ListView和DataPager无法正常工作

时间:2011-12-14 00:24:29

标签: asp.net listview paging datapager

我使用DataPager来浏览ListView数据。当ListView绑定,DataPager显示下面有很多页面时,一切似乎都没问题,但当我点击其他页面时,在回发后,ListView为空EmptyDataTemplate和当然没有页面。

我用谷歌搜索并尝试下面的一个和两个解决方法,但他们没有帮助

    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的数据绑定在点击事件中,而不是在PageLoad上。

任何人都可以帮助我吗?非常感谢你!

2 个答案:

答案 0 :(得分:1)

简单,只需从数据库中的“QUERY-STRING”中获取“ID”,现在将其设置为寻呼机控制属性[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>

注意:如果不是,也请设置[PagedControlID="ListView_Name"]

答案 1 :(得分:0)

您没有显示ViewState[ViewState[VIEWSTATE_DATASET]的设置方式。我猜这会在回发时重置为null并且您正在吞下可能在此行上尝试转换空值的Exception

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