【发布时间】:2016-11-17 22:20:12
【问题描述】:
我无法使用会话将整个 Gridview 传递到另一个页面。我目前的做法是将数据源存储在数据表中并通过会话传递数据表。
这是我的代码:
第一页:
Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
Dim tbl As DataTable = CType(gvSessionParts.DataSource, DataTable)
Session("dtCart") = tbl
If Request.QueryString("Customer") = "" Then
Response.Redirect("Orderreview.aspx"
Else
Response.Redirect("Orderreview.aspx?Customer=" & Request.QueryString("Customer") & "")
End If
End Sub
第二页(抓取 Session 并填充 gridview)
If Not IsPostBack Then
Dim dt2 As DataTable = CType(Session("dtCart"), DataTable)
dt2.Columns.Add(New DataColumn("PartNumber", GetType(System.String)))
dt2.Columns.Add(New DataColumn("Line", GetType(System.String)))
dt2.Columns.Add(New DataColumn("Description", GetType(System.String)))
dt2.Columns.Add(New DataColumn("Description2", GetType(System.String)))
dt2.Columns.Add(New DataColumn("Qty", GetType(System.String)))
dt2.Columns.Add(New DataColumn("Price", GetType(System.String)))
gvSessionParts.DataSource = dt2
gvSessionParts.DataBind()
End If
我做错了什么?为什么这不起作用?
我收到一个错误:
对象引用未设置为对象的实例。
第 21 行:dt2.Columns.Add(New DataColumn("PartNumber", GetType(System.String)))
我觉得我以错误的方式传递了这个。我确实使用 ViewState 来允许我继续向第一页的 Gridview 添加部件。
【问题讨论】:
-
我会说:不是gridview!您应该传递数据而不是 gridview。
-
@MaciejLos 我不知道该怎么做?我正在尝试传递 Gridview 中的所有数据。不只是一排。
标签: asp.net vb.net session gridview