我在网站上有一个.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
此处使用(Billing-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
此处不执行任何操作(Payment-details.aspx) - 这是购物车流程中的两个步骤(购物车 - > Billing-Details - > Payment-Details),始终显示为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
答案 0 :(得分:1)
在您的代码中,您正在访问本地声明为c的类。
要使值保持跨页面,您可能会将该类存储在基页或会话中。
如果您要存储它并从Session中检索它,请确保在设置它的属性后将其保存回会话。
Session("Customer") = c
此外,您似乎没有使用“设置属性”设置或获取值。
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
当您通过Property设置值时,属性本身将设置局部变量 intOutOfStockItems 和 decNewTotal
的值答案 1 :(得分:0)
我可能会离开这里 - 但是在有效的例子中,你正在设置属性。在第二个中,您将设置保留属性值的项目(decNewTotal v.NewTotal)。这可能是微不足道的,但是如果你已经拥有了一个属性,你也可以设置/使用它。
当我输入时,给出了关于get / set的新答案。另外,请确保上述任何值(反转,百分比,总计)都不会将您的值截断为零,即。设置时检查c.decNewTotal的值是什么:
祝你好运。c.decNewTotal = Decimal.Parse(total)