如何将List(Of objects) - orders - 从结果页面传递到详细信息页面

时间:2015-05-12 16:37:19

标签: asp.net .net vb.net gridview web-applications

我所处的背景如下:

我有一个页面接收日期范围,从用户,然后用户点击按钮和从Web服务检索的订单列表,显示在网格视图上,列上的列是超链接将订单结果页面链接到订单详细信息页面,在查询字符串上传递订单ID。

这是检索订单的方式:

Public Sub GetOrdersByDate(ByVal StartDate As Date, ByVal EndDate As Date, ByVal StrEnv As String)
    Dim client As New OrderService.OrderClient
    _items = New List(Of Order)

    Try
        client.Endpoint.Address = New EndpointAddress(Globals.AppSettings("OrderEnv" & "_" & StrEnv))

        Dim returnedServiceOrder As List(Of OrderService.OrderDataHeaderModel)
        returnedServiceOrder = client.GetOrdersByDateRange(siteKey, StartDate, EndDate)
        copyOrderServiceModelToUIModel(returnedServiceOrder)
    Catch ex As Exception
        HttpContext.Current.Response.Write(ex.Message)
    Finally
        client.Close()
    End Try
End Sub

这是从超链接访问第二页的方式:

DirectCast(e.Row.FindControl("lblOrderID"), HyperLink).NavigateUrl = Page.ResolveUrl("~/order-review.aspx?order_id=" & e.Row.DataItem.OrderID)

我需要在订单详细信息页面添加分页,然后在第一页显示的订单集上重新开始。

我不确定如何将订单组传递到订单详情页面,以便我可以添加下一个和上一个按钮来更改订单详情页面上显示的订单。

用于实现此目的的常用方法有哪些?

非常感谢

这是主要/详细功能的示例:http://aspsnippets.com/demos/483/

但我的问题是,如何将分页从主服务器上的结果添加到详细信息视图?

1 个答案:

答案 0 :(得分:1)

Web服务结果(List(Of objects)),您可以将结果存储在会话中。

在下一页上,您可以使用在查询字符串中传递的OrderID来过滤会话中的结果。

您将拥有一个订单对象。它应该有order items属性,它是List(Of orderItem)。您可以将该列表绑定到GridView并在GridView上实现分页。

1.在第一页将Web服务结果存储到会话中。

Dim returnedServiceOrder As List(Of OrderService.OrderDataHeaderModel)
returnedServiceOrder = client.GetOrdersByDateRange(siteKey, StartDate, EndDate)
Session("ServiceResult") = serviceResult

2.从下一页的会话中检索该结果。

Dim returnedServiceOrder As List(Of OrderService.OrderDataHeaderModel)
returnedServiceOrder = CType(Session("ServiceResult"), List(Of OrderService.OrderDataHeaderModel))