我有一个网格视图,我在第一页加载时将其绑定,我在同一页面上有一些搜索选项,当点击搜索按钮时我查询seaarch并使用搜索结果中的新数据源重新绑定gridview ,问题是在重新绑定gridview之后我有分页问题,我在第一个pageload数据绑定中没有它们!谁能告诉我为什么会这样?!
这是我的Page_Load coe:
protected void Page_Load(object sender, EventArgs e)
{
DisableChaching();
string val = Convert.ToString(Session["AccessLevel"]);
if (Request.Cookies["UserName"] == null)
{
if (Session["UserName"] == null)
{
Response.Redirect("~/Default.aspx");
}
else if (val == "2")
{
Response.Redirect("~/Default.aspx");
}
}
else if (val == "2")
{
Response.Redirect("~/Default.aspx");
}
if (!IsPostBack)
{
LoadControls();
BindGrid();
}
}
我的GV_PageIndexChanging:
protected void GV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GV.PageIndex = e.NewPageIndex;
BindGrid();
PageStatus(Status.None);
}
我的btnSearch_Click:
protected void btnSearch_Click(object sender, ImageClickEventArgs e)
{
query = new CommonQueries();
GV.DataSource = query.getBooksByGroupIDSubGroupID(DrpGroup.SelectedItem.Value,DrpSubGroup.SelectedItem.Value);
GV.DataBind();
}
在CommonQueries Class中,我使用了这个查询:
public List<Book> getBooksByGroupIDSubGroupID(string GroupID, string SubGroupID)
{
db = new BookMarketDataContext();
List<Book> list = new List<Book>();
list = (from b in db.Books where b.GroupID.ToString() == GroupID && b.SubGroupID.ToString() == SubGroupID orderby b.Name select b).ToList();
return list;
}
更具体:在我的页面加载中,我对gridview页面更改没有任何问题 但是,在单击搜索按钮“btnSearch”并重新绑定gridview之后,如果搜索结果足以导致gridview具有页面编号,并且当我单击其中一个页面编号时,我得到的错误结果来自之前的page_Load!
答案 0 :(得分:1)
您的分页回发似乎不包含有关应该分页的视图状态的信息。您应该将该信息推送到页面,以便将其包含在回发中,或将其存储在用户会话中(减少往返次数,在服务器上更多权重,但如果您还存储查询结果则响应速度更快)。 ..