我的搜索页面顶部有参数,搜索按钮的结果位于底部。整个事情都包含在母版页内的更新面板中。单击搜索按钮后,它将显示第一页。但是,如果单击DataPager上的下一个按钮,则不会显示第二页。它显示第二页没有结果。任何帮助将不胜感激。
答案 0 :(得分:3)
我认为尼克有正确的想法。听起来您正在执行搜索并在OnClick方法中为搜索按钮填充ListView。您需要执行搜索(或者最好是第一次缓存数据)并将其绑定到使用DataPager请求的每个新页面的ListView。
通过为ListView的OnPagePropertiesChanged事件创建方法,您可以相当轻松地完成此操作。执行搜索(或从缓存中拉出)并在该OnPagePropertiesChanged事件中绑定ListView,您的数据应该填充。您的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();
}
答案 1 :(得分:1)
听起来你的控件在回发中没有绑定,你正在做DataBind()的事件,它是在
之下 if(!IsPostBack) { }
某种包装?
答案 2 :(得分:0)
请确保您的页面更改事件已在脚本管理器中注册,因为它不在更新面板控件中。 ScriptManager.RegisterAsyncPostBackControl(DatePager Control);
答案 3 :(得分:0)
在更新底部的底部执行以下操作:
<Triggers>
<asp:PostBackTrigger ControlID="DataPager1" />
</Triggers>
</asp:UpdatePanel>
答案 4 :(得分:0)
在DataPager
的数据控件上使用EnableViewState=false
时出现类似问题。