【发布时间】:2015-09-17 18:44:44
【问题描述】:
我正在尝试将 Query 的结果存储在 Session 中以传递给 PageIndexChanging 事件。
当我运行查询时,我得到了异常 cannot access disposed object。
当我绑定网格时,我将查询添加到 Session
pnl_results.Visible = true;
ResultsGridView.DataSource = result;
ResultsGridView.DataBind();
Session["ResultQuery"] = result;
然后我尝试在PageIndexChanging事件中使用它
protected void ResultsGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
var gridResult = Session["ResultQuery"].ToString();
ResultsGridView.PageIndex = e.NewPageIndex;
ResultsGridView.DataSource = gridResult;
ResultsGridView.DataBind();
}
如何设置Session,以便在PageIndexChanging 事件中使用它
【问题讨论】:
-
我不确定在这种情况下确切的最佳做法是什么,但
ToString肯定对您的情况没有帮助。 -
您是否通过调用 .ToList() 或 .FirstOrDefault() 等在服务器上执行 linq 查询?但我的问题是你的 linq 查询在哪里?我没看到。
-
@sixlettervariables nope 我不认为他的结果是一个字符串:)
-
我投票关闭作为asp.net gridview paging 的副本,因为您应该重新查询而不是将结果存储在 Session 对象中。如果不重新运行查询,您可能会遇到问题。
-
.ToList()有效,但现在我的PageIndexChanging中有一个新错误..The data source does not support server-side data paging.?