我在ASP.NET Web表单上有一个GridView,它已绑定到数据源并将其设置为每页有10条记录。
我在GridView上也有一个超级链接列,这样用户就可以从列表中导航到另一个页面(详细信息页面)。在详细信息页面上,他们有“返回”按钮返回GridView页面
修改
只是为了澄清查询
我正在寻找服务器端的示例代码片段,了解如何指定页面索引以在数据绑定后设置GridView。我们的想法是确保用户导航到他们所在的相同页面索引。
答案 0 :(得分:2)
您可以使用的三个基本选项:查询字符串,会话,cookie。他们每个人都有自己的缺点和优点:
修改:设置网页索引的小代码段。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
try
{
if(HttpContext.Current.Request["myGVPageId"] != null])
{
myGridview.PageIndex = Convert.ToInt32(HttpContext.Current.Request["myGVPageId"]);
}
}
catch(Exception ex)
{
// log it
}
}
}
答案 1 :(得分:2)
我个人更喜欢Session方法的粉丝。只需将页面索引保存为会话变量,如果此页面变量在页面加载时不为空,则使用它来触发" OnPageIndexChanging"方法,如:
每当页码更改时设置当前页码:
protected void GridViewIndexChanging(object sender, GridViewPageEventArgs e)
{
myGridView.PageIndex = e.NewPageIndex;
Session["pageNumber"] = e.NewPageIndex;
//whatever your page index changing does...
}
然后,在Page_Load上执行以下操作:
if (!IsPostBack)
{
if (Session["pageNumber"] != null)
{
GridViewIndexChanged(myGridView, new GridViewPageEventArgs((int)Session["pageNumber"]));
}
}
答案 2 :(得分:1)
你可以使用网格视图的页面索引更改事件并查找e:g的当前页面索引
yourGridId.PageIndex=e.NewPageIndex;
ViewState["GridPageIndex"]=e.NewPageIndex;
PageL在PageLoad上获取Viewstate值
string pIndex=string.Empty;
pIndex=Convert.toInt32(ViewState["GridPageIndex"]);
if(!string.Empty(pIndex))
{
yourGridId.PageIndex =pIndex;
}
答案 3 :(得分:0)
您必须使用查询字符串并建议使用,否则您可以使用会话对象但不要使用它,因为您可能在不同页面中打开网格视图,因此请使用查询字符串。
gridView1.CurrentPageIndex = (Request["pageNo"] != null) ? Request["pageNo"] as int : 0;
gridView1.DataSource = myDataSet;
gridView1.DataBind();
您可以更新GridView_DataBound
活动