3

我有一个顶部带有参数的搜索页面和底部带有结果的搜索按钮。整个内容都包含在母版页内的更新面板中。单击搜索按钮后,它会显示第一页。但是,如果您单击 DataPager 上的下一步按钮,它不会显示第二页。它没有显示第二页的结果。任何帮助将不胜感激。

4

5 回答 5

3

我认为尼克的想法是正确的。听起来您正在执行搜索并在搜索按钮的 OnClick 方法中填充 ListView。您需要执行搜索(或者最好是第一次缓存数据)并将其绑定到使用 DataPager 请求的每个新页面的 ListView。

您可以通过为 ListView 的 OnPagePropertiesChanged 事件创建一个方法来相当容易地做到这一点。执行搜索(或从缓存中提取)并将 ListView 绑定到该 OnPagePropertiesChanged 事件中,您的数据应该会填充。您的 C# 代码可能如下所示:

protected void SearchButton_OnClick(object sender, EventArgs e)
{
    PerformSearch();
}

protected void PerformSearch()
{
    // ...Get your data.... //

    ListView1.DataSource = data;
    ListView1.DataBind();
}

protected void ListView1_OnPagePropertiesChanged(object sender, EventArgs e)
{
    PerformSearch();
}
于 2009-04-14T17:59:19.457 回答
1

听起来您的控件在回发中没有绑定,您在哪个事件中执行 DataBind(),它是否在

if(!IsPostBack) { }

某种包装?

于 2009-03-19T16:41:32.853 回答
0

请确保您的页面更改事件已在脚本管理器中注册,因为它不受更新面板的控制。ScriptManager.RegisterAsyncPostBackControl(DatePager 控件);

于 2009-01-08T15:45:14.727 回答
0

在更新面板的底部执行以下操作:

       <Triggers>
                                <asp:PostBackTrigger ControlID="DataPager1" />
                            </Triggers>
                    </asp:UpdatePanel>
于 2009-02-05T23:28:16.270 回答
0

DataPager在数据控件 where 上使用 a 时,我遇到了类似的问题EnableViewState=false

于 2009-12-02T15:01:00.520 回答