您的位置:首页 > 编程语言 > ASP

ASPNETPager条件查询分页的实现

2014-07-15 14:32 344 查看
利用ASPNETPager支持URL分页的功能实现条件查询,翻页条件依然存在的效果,不使用viewstate,session之类的东西。

思路:

在条件查询按钮后台代码上进行页面的Redirect,URL为本列表页面的URL?param1=param1value¶m2=param2value...

因为ASPNETPager分页的时候是整个页面的重新刷新,条件不会保存,但是,如果加上上述的param之后,该控件分页的时候会自动的带上这些param。那么就可以在后台的代码中进行设置了并按照条件进行查询分页了。

具体实现代码:

重点代码:

查询按钮btnSearch

public partial class AreaList : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.SearchData();
}
}

protected void Pager_PageChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Utils.getQueryValue("page")))
{
this.SearchData();
}
}

private void SearchData()
{
<strong>var list = DictionartFactory.GetList("AreaOperation").AsQueryable();
string name = Utils.getQueryValue("name");

if (string.IsNullOrEmpty(name))
{
name = this.txtAreaName.Text.CleanSQL();
}
else
{
this.txtAreaName.Text = name;
}
if (!string.IsNullOrEmpty(name))
{
list = list.Where(rt => rt.Value.Contains(name));
}</strong>

list = list.OrderBy(rt => rt.ID);
IQueryable<SQLDAL.DictionaryType> listPager = list;
listPager = list.Skip((this.Pager.CurrentPageIndex - 1) * this.Pager.PageSize).Take(Pager.PageSize);
this.Pager.RecordCount = list.Count();
this.rptAreaList.DataSource = listPager;
this.rptAreaList.DataBind();
}

<strong>protected void btnSearch_Click(object sender, EventArgs e)
{
this.Response.Redirect("arealist.aspx?name=" + this.txtAreaName.Text);
}</strong>
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: