属性 不在页面之间存储:
Property not storing between pages:
我在一个站点上有一个 .vb 文件,它存储了在该站点的各个页面上使用的几十个属性。我是公司的新手,也是唯一的网络开发人员,但我并没有自己制作网站。我是来尝试更新它的。
我已将两个属性添加到文件中,一个有效,另一个无效,但我不明白为什么?
(缺货有效,新总计无效)
第一个:
Property OutOfStockItems() As Integer
Get
Return intOutOfStockItems
End Get
Set(ByVal value As Integer)
intOutOfStockItems = value
End Set
End Property
在此处设置 (Cart.aspx) - 此 属性 是根据购物车中的商品数量设置的,布尔值缺货为 'true'.
Protected Sub btnCheckout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCheckout.Click
c.intOutOfStockItems = ooscount
c.decNewTotal = Decimal.Parse(total)
Response.Redirect("billing-details.aspx")
'txtVoucher.Text = "New Total: " + c.decNewTotal.ToString()
End Sub
在此处使用(计费-Details.aspx)- 购物车过程中的后一页
'Check if customer has ordered out of stock items
If c.intOutOfStockItems >= 1 Then
pnlOutOfStockBlurb.Visible = True
Else
pnlOutOfStockBlurb.Visible = False
End If
第二个:
Property NewTotal() As Decimal
Get
Return decNewTotal
End Get
Set(ByVal value As Decimal)
decNewTotal = value
End Set
End Property
在此处设置 (Cart.aspx) - 此十进制值可用于购物车页面的任何位置。
Protected Sub percentageDiscount()
Dim invert As Integer = 100 - Voucher.DiscountAmount
Dim percent As Decimal = invert / 100
total = Decimal.Parse(grandTotalInt)
If Voucher.AppliesTo = "Cart Total" Then
If total > Voucher.Amount Then
total = total * percent
End If
End If
c.decNewTotal = Decimal.Parse(total)
txtVoucher.Text = c.decNewTotal.ToString()
End Sub
这里什么都不做(付款-details.aspx)- 这是购物车流程中的两个步骤(购物车 -> 账单明细 -> 付款明细) , 始终显示为 0.
lblSavings.Text = c.decNewTotal.ToString()
购物车页面上的这一行向文本框显示了正确的数字,但该数字根本不会转到新页面。
txtVoucher.Text = c.decNewTotal.ToString()
编辑
Imports DataAccessLayer
Imports System.Data
Imports System.Xml
Imports System.Net
Imports System.Reflection
Imports System.Net.Mail
Partial Class payment_details
Inherits System.Web.UI.Page
Dim c As User
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
在您的代码中,您正在访问在本地声明为 c 的 class。
要使值在页面间保持不变,您可能会将 class 存储在基页或会话中。
如果您要存储它并从 Session 中检索它,请确保在设置它的属性后将其保存回 Session。
Session("Customer") = c
此外,您似乎没有使用 class 属性来设置或获取值。
Protected Sub btnCheckout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCheckout.Click
c.intOutOfStockItems = ooscount
c.decNewTotal = Decimal.Parse(total)
Response.Redirect("billing-details.aspx")
'txtVoucher.Text = "New Total: " + c.decNewTotal.ToString()
End Sub
应该是这样的;
Protected Sub btnCheckout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCheckout.Click
OutOfStockItems = ooscount
NewTotal = Decimal.Parse(total)
Response.Redirect("billing-details.aspx")
'txtVoucher.Text = "New Total: " + NewTotal.ToString()
End Sub
当您通过 属性 设置值时,属性 本身将设置局部变量 intOutOfStockItems 和 的值decNewTotal
我可能会离开这里 - 但在有效的示例中,您正在设置 属性。在第二个中,您正在设置您在 (decNewTotal v. NewTotal) 中保留 属性 值的项目。这可能是微不足道的,但如果你已经有一个 属性,你也可以 set/use 它。
在我输入时,系统给出了一个关于 get/set 的新答案。另外,请确保不是上述任何值(反转、百分比、总计)将您的值截断为零,即。检查设置时的值 c.decNewTotal:
c.decNewTotal = Decimal.Parse(total)
祝你好运。
我在一个站点上有一个 .vb 文件,它存储了在该站点的各个页面上使用的几十个属性。我是公司的新手,也是唯一的网络开发人员,但我并没有自己制作网站。我是来尝试更新它的。
我已将两个属性添加到文件中,一个有效,另一个无效,但我不明白为什么?
(缺货有效,新总计无效)
第一个:
Property OutOfStockItems() As Integer
Get
Return intOutOfStockItems
End Get
Set(ByVal value As Integer)
intOutOfStockItems = value
End Set
End Property
在此处设置 (Cart.aspx) - 此 属性 是根据购物车中的商品数量设置的,布尔值缺货为 'true'.
Protected Sub btnCheckout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCheckout.Click
c.intOutOfStockItems = ooscount
c.decNewTotal = Decimal.Parse(total)
Response.Redirect("billing-details.aspx")
'txtVoucher.Text = "New Total: " + c.decNewTotal.ToString()
End Sub
在此处使用(计费-Details.aspx)- 购物车过程中的后一页
'Check if customer has ordered out of stock items
If c.intOutOfStockItems >= 1 Then
pnlOutOfStockBlurb.Visible = True
Else
pnlOutOfStockBlurb.Visible = False
End If
第二个:
Property NewTotal() As Decimal
Get
Return decNewTotal
End Get
Set(ByVal value As Decimal)
decNewTotal = value
End Set
End Property
在此处设置 (Cart.aspx) - 此十进制值可用于购物车页面的任何位置。
Protected Sub percentageDiscount()
Dim invert As Integer = 100 - Voucher.DiscountAmount
Dim percent As Decimal = invert / 100
total = Decimal.Parse(grandTotalInt)
If Voucher.AppliesTo = "Cart Total" Then
If total > Voucher.Amount Then
total = total * percent
End If
End If
c.decNewTotal = Decimal.Parse(total)
txtVoucher.Text = c.decNewTotal.ToString()
End Sub
这里什么都不做(付款-details.aspx)- 这是购物车流程中的两个步骤(购物车 -> 账单明细 -> 付款明细) , 始终显示为 0.
lblSavings.Text = c.decNewTotal.ToString()
购物车页面上的这一行向文本框显示了正确的数字,但该数字根本不会转到新页面。
txtVoucher.Text = c.decNewTotal.ToString()
编辑
Imports DataAccessLayer
Imports System.Data
Imports System.Xml
Imports System.Net
Imports System.Reflection
Imports System.Net.Mail
Partial Class payment_details
Inherits System.Web.UI.Page
Dim c As User
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
在您的代码中,您正在访问在本地声明为 c 的 class。
要使值在页面间保持不变,您可能会将 class 存储在基页或会话中。
如果您要存储它并从 Session 中检索它,请确保在设置它的属性后将其保存回 Session。
Session("Customer") = c
此外,您似乎没有使用 class 属性来设置或获取值。
Protected Sub btnCheckout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCheckout.Click
c.intOutOfStockItems = ooscount
c.decNewTotal = Decimal.Parse(total)
Response.Redirect("billing-details.aspx")
'txtVoucher.Text = "New Total: " + c.decNewTotal.ToString()
End Sub
应该是这样的;
Protected Sub btnCheckout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCheckout.Click
OutOfStockItems = ooscount
NewTotal = Decimal.Parse(total)
Response.Redirect("billing-details.aspx")
'txtVoucher.Text = "New Total: " + NewTotal.ToString()
End Sub
当您通过 属性 设置值时,属性 本身将设置局部变量 intOutOfStockItems 和 的值decNewTotal
我可能会离开这里 - 但在有效的示例中,您正在设置 属性。在第二个中,您正在设置您在 (decNewTotal v. NewTotal) 中保留 属性 值的项目。这可能是微不足道的,但如果你已经有一个 属性,你也可以 set/use 它。
在我输入时,系统给出了一个关于 get/set 的新答案。另外,请确保不是上述任何值(反转、百分比、总计)将您的值截断为零,即。检查设置时的值 c.decNewTotal:
c.decNewTotal = Decimal.Parse(total)
祝你好运。