私はグリッドビューを持っていて、最初のページの読み込み時にそれをバインドします。同じページにいくつかの検索オプションがあります。検索ボタンをクリックすると、検索をクエリし、検索結果から出てくる新しいデータソースでグリッドビューを再バインドします。問題グリッドビューを再バインドした後、最初のページロード データ バインディングでは発生しないページングの問題があります。それはなぜですか?
ここに私の 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;
}
より具体的に:ページの読み込みでは、グリッドビューページの変更に問題はありませんが、検索ボタン「btnSearch」をクリックしてグリッドビューを再バインドした後、検索結果がグリッドビューにページ番号を持たせるのに十分である場合、および私がこれらのページ番号の 1 つをクリックしてください。前の page_Load から間違った結果が得られました。