C# 页面加载时加载特定的gridview行
编辑:我通过在gridview中包含一个filterexpression和一个用于搜索的文本框解决了这个问题。这样我就可以直接通过搜索查询,而不必做任何花哨的事情C# 页面加载时加载特定的gridview行,c#,asp.net,gridview,C#,Asp.net,Gridview,编辑:我通过在gridview中包含一个filterexpression和一个用于搜索的文本框解决了这个问题。这样我就可以直接通过搜索查询,而不必做任何花哨的事情 我已经做了一个基本的搜索函数。在该搜索功能中,我添加了一个超链接以查看更多信息: <asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/CompanyActive.aspx?id={0}", Eval("Company
我已经做了一个基本的搜索函数。在该搜索功能中,我添加了一个超链接以查看更多信息:
<asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/CompanyActive.aspx?id={0}", Eval("CompanyID")) %>'>Select</asp:HyperLink>
选择
它将CompanyID传递到我的主页(CompanyActive),在那里我有一个带分页的gridview
然而,我的问题是,它没有到达记录所在的特定页面/位置。它只显示第一页
我想我需要在CompanyActive上的pageload事件中添加一些代码,但我不知道应该使用哪些命令 是否使用数据表填充gridview 如果是这样,并且您知道ID不会改变,那么您可以在记录ID上进行导航 这里有一个关于Stackoverflow的类似问题的链接 希望这有帮助 马汀 范例 您正在使用此链接按钮
<asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/CompanyActive.aspx?id={0}", Eval("CompanyID")) %>'>Select</asp:HyperLink>
选择
要使用另一篇文章中的代码,只需像这样修改代码
private void BindProductGrid()
{
product ID = Request.QueryString["id"]; // id is the name same as what you passed as a querystring
DataTable tblProducts = getAllProducts();
GridProducts.DataSource = tblProducts;
bool needsPaging = (tblProducts.Rows.Count / GridProducts.PageSize) > 1;
if (ProductID == -1)
{
this.GridProducts.PageIndex = 0;
this.GridProducts.SelectedIndex = -1;
}
else
{
int selectedIndex = tblProducts.AsEnumerable()
.Select((Row, Index) => new { Row, Index })
.Single(x => x.Row.Field<int>("ProductID") == ProductID).Index;
int pageIndexofSelectedRow = (int)(Math.Floor(1.0 * selectedIndex / GridProducts.PageSize));
GridProducts.PageIndex = pageIndexofSelectedRow;
GridProducts.SelectedIndex = (int)(GridProducts.PageIndex == pageIndexofSelectedRow ? selectedIndex % GridProducts.PageSize : -1);
}
GridProducts.DataBind();
}
private void BindProductGrid()
{
product ID=Request.QueryString[“ID”];//ID与作为QueryString传递的名称相同
DataTable TBLPProducts=getAllProducts();
GridProducts.DataSource=tblProducts;
bool needsPaging=(tblProducts.Rows.Count/GridProducts.PageSize)>1;
if(ProductID==-1)
{
this.GridProducts.PageIndex=0;
this.GridProducts.SelectedIndex=-1;
}
其他的
{
int selectedIndex=tblProducts.AsEnumerable()
.Select((行,索引)=>new{Row,Index})
.Single(x=>x.Row.Field(“ProductID”)==ProductID.Index;
int pageIndexofSelectedRow=(int)(Math.Floor(1.0*selectedIndex/GridProducts.PageSize));
GridProducts.PageIndex=pageIndexofSelectedRow;
GridProducts.SelectedIndex=(int)(GridProducts.PageIndex==pageIndexofSelectedRow?SelectedIndex%GridProducts.PageSize:-1);
}
GridProducts.DataBind();
}
这样,ID就是您从另一个页面传递的公司ID发布您的导航页面代码。导航页面代码?你是说我的gridview寻呼机设置?你是说你想显示存在特定id的页面?正确。如果我有1000条记录,并且记录#500位于第#10页,我希望在单击链接时将其转到第10页。无数据表。gridview中的所有内容都是通过sqldatasource填充的。ID永远不会改变,因为它是我数据库中的主键。好吧,在这种情况下,这篇文章应该仍然有效,因为您知道确切的IDB。但是我如何将代码绑定到两个单独的页面?我有两个网站,搜索和公司活动。超链接位于搜索中。本文讨论的是gridview和按钮是否位于同一页面上。或者我完全弄错了?是的,不是的,基本上这篇文章讨论的是同一个页面,但是你可以将它作为查询字符串传递到一个新页面,在新页面集的页面加载中调用它并使用它。我已经更新了我的答案