0

我有一个DataPager用于浏览搜索结果的页面。我的 DataPager 在我点击并分页其中一些后丢失了结果,例如,如果我翻页 2-3 次,我将只得到 ID 等标签而没有数据。

标记

 <asp:ListView runat="server" ID="LVCAdmin">
     <!-- Templates here -->
 </asp:ListView>

<asp:DataPager ID="DataPager1" PagedControlID="LVCAdmin" runat="server">

     <Fields>
         <asp:NextPreviousPagerField ButtonType="Button" 
         ShowFirstPageButton="True" ShowNextPageButton="False"
         ShowPreviousPageButton="False" />

         <asp:NumericPagerField />

         <asp:NextPreviousPagerField ButtonType="Button"
             ShowLastPageButton="True" ShowNextPageButton="False"
             ShowPreviousPageButton="False" />
      </Fields>

</asp:DataPager>

代码隐藏

protected void btnSubmit_Click(object sender, EventArgs e)
{
    string keyword = txtSearch.Text.Trim();

    List<dynamic> Cresults = AdminSearchAll(keyword);

    if (Cresults.Count != 0)
    {    
        LVCAdmin.DataSource = Cresults;
        LVCAdmin.DataBind();

        NoResults.Visible = false;
        LVCAdmin.Visible = true;
    }
    else
    {
        NoResults.Visible = true;

        LVCAdmin.Visible = false;
    }
}
4

1 回答 1

0

我想到了。我OnPreRender="Pager_PreRender"在我的 DataPager 控件中添加了一个。下面是方法。到目前为止,它已按预期工作。

 protected void Pager_PreRender(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                   string keyword = txtSearch.Text.Trim();


                    List<dynamic> Cresults = AdminSearchAll(keyword);


                    if (Cresults.Count != 0)
                    {

                        LVCAdmin.DataSource = Cresults;
                        LVCAdmin.DataBind();

                        NoResults.Visible = false;
                        LVCAdmin.Visible = true;
                    }
                    else
                    {

                        NoResults.Visible = true;

                        LVCAdmin.Visible = false;


                    }

                }

        }
于 2013-01-02T23:47:53.563 回答