a.aspx に複数ページのレコードを含む gridview があります。b.aspx のボタンをクリックすると、グリッドビューのレコードを含む特定のページに移動する必要があります。
質問する
3046 次
1 に答える
4
代わりに、実際には特定のレコードに移動したいと思います。次に、URLパラメータ(またはセッション)を介してIDを渡し、このレコードのあるグリッドのページに移動します。ページが変わる可能性があるので、それはより良いです(ソートでfe)。
グリッドに商品がリストされていて、別のページで商品の詳細を編集したばかりなので、特定の商品が表示されるようにしたい場合。DataSource
また、あなたがDataTable
(しかしそれは実際には重要ではありません)であると仮定します:
/// <summary>
/// Binds the products-GridView.
/// </summary>
/// <param name="ProductID">the ProductID to be displayed, changes also the PageIndex if necessary</param>
private void BindProductGrid(int ProductID = -1)
{
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();
}
于 2012-11-09T11:17:26.160 に答える