1

我有一个网格视图,我在第一页加载时将其绑定,我在同一页面上有一些搜索选项,当单击搜索按钮时,我查询搜索,并使用来自搜索结果的新数据源重新绑定网格视图,问题是在重新绑定 gridview 之后,我有分页问题,​​我在第一个页面加载数据绑定中没有这些问题!谁能告诉我这是为什么?!

这是我的 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 类中,我使用了这个查询:

    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 得到错误的结果!

4

1 回答 1

1

您的分页回发似乎不包含有关应该分页的视图状态的信息。您应该将该信息向下推送到页面,以便它可以包含在回发中,或者将其存储在用户会话中(更少的往返,更多的服务器权重,但如果您还存储查询结果,则响应速度更快)。 ..

于 2012-05-08T15:28:43.480 回答