不使用主/详细信息的ASP.NET页面的下一个/上一个导航?

时间:2012-01-12 15:17:26

标签: asp.net

假设我有一个加载单个记录的详细记录页面(用户可以从GridView中选择此记录)。用户需要下一个/上一个按钮功能,因此他们不必点击后退按钮返回到网格(网格有很多记录,因此他们“忘记”他们所处的位置);基本上像一个旧的MS Access记录表格,底部有导航按钮(虽然我只对Next / Previous感兴趣,但我不需要第一个/最后一个/新的)。

是否有一种相对简单的方法可以实现将整个对象列表从网格填充到ViewState或Session中的简单方法(即便如此,它也没有订购,所以我无法知道“下一个”是什么记录是)?我们不需要Master / Detail类型的设置,其中详细记录在网格下方,必须是一个单独的页面。

1 个答案:

答案 0 :(得分:1)

您可以在另一个页面中设置FormView,然后从网格中的超链接导航到该页面,其中包含查询字符串中的ID,用于FormView的DataSource的SelectMethod输入参数,如下所示:

<a onclick="window.open('../DetailsPage.aspx?id=<%# Eval("id") %>', 
    'Details', 'height=670,width=770,scrollbars=yes,resizable=yes'); 
    GetSelectedRow();" href="#">View Details
</a>

这使用JavaScript打开一个新窗口,其中查询字符串附加到网址。 GetSelectedRow方法是一个JavaScript函数,您可以使用它来标识所单击行的id - 因此是Eval方法。

在您的详细信息页面上您的DataSource的SelectParameter:

<SelectParameters>
    <asp:QueryStringParameter Name="id" Type="Int32" QueryStringField="id"
        DefaultValue="0" /> 
</SelectParameters>

获取您的数据并将其绑定到FormView。

FormView允许您使用寻呼机一次显示一个记录集合,并且它有一个PagerTemplate来自定义寻呼机。