全局变量在另一个事件中失去值



我有以下全局变量

Dim cardNumber As String
Dim txnAmount As String
Dim TerminalID As String
Dim CurrencyCode As String

和从SP返回的结果集中为单击事件分配值

dsCards = Utilities.GetVirtualResultNew(txtCardNumber.Text.Trim)
grdTransactionResultSearch.DataSource = dsCards
grdTransactionResultSearch.DataBind()
cardNumber = IIf(IsDBNull(dsCards.Tables(0).Rows(0).Item("pan")), "", dsCards.Tables(0).Rows(0).Item("pan"))
txnAmount = IIf(IsDBNull(dsCards.Tables(0).Rows(0).Item("TotalAmount")), "", dsCards.Tables(0).Rows(0).Item("TotalAmount"))
TerminalID = IIf(IsDBNull(dsCards.Tables(0).Rows(0).Item("TerminalID")), "", dsCards.Tables(0).Rows(0).Item("TerminalID"))
CurrencyCode = IIf(IsDBNull(dsCards.Tables(0).Rows(0).Item("CurrencyCode")), "", dsCards.Tables(0).Rows(0).Item("CurrencyCode"))

我调试了代码,我可以看到值被分配给它们,但是当我试图在另一个按钮单击事件中访问它们时,它们是空的

这里是我的按钮点击事件,这些变量是空的

Protected Sub btnAuthorize_Click(sender As Object, e As EventArgs) Handles btnAuthorize.Click
  Utilities.InsertAuthorizedTransactions(cardNumber, txnAmount, TerminalID, CurrencyCode)
  Label1.Visible = True
END Sub   

我的代码有什么问题?

当按钮被点击时,执行回发(什么是回发?),在这种情况下将重新初始化您的变量。

首选选项可能是在第一次单击按钮时将变量存储在ViewState(什么是ViewState?)中:

ViewState("cardNumber") = "foo"
ViewState("txnAmount") = "bar"
'etc.

然后在第二次点击时访问它们。

还请注意,您不应该在VB中使用IIF函数。但是你应该使用If 运算符

相关内容

  • 没有找到相关文章

最新更新