2015-03-20 7 views
-1
Public Class sample 
    Public inta As Integer 
    Protected Sub button1(sender As Object, e As EventArgs) 
    inta = "2" 
    End Sub 

    Protected Sub button2(sender As Object, e As EventArgs) 
    Response.Write(inta) 
    End Sub 
End Class 

Это пример кода, лежащего за моей aspx. Он продолжает показывать 0 вместо 2. Единственное отличие моего кода от этого образца состоит в том, что кнопка2 находится в модальном диалоговом окне. Но когда я попытался использовать этот простой код, он все равно не работает. Я сделал что-то не так?Публичная переменная не работает

+1

Почему объявлен как Integer, если ваши назначая строки к нему? – OneFineDay

+2

Не совсем ваш ответ, но вам лучше начать использовать Option Strict On – Steve

+3

Поскольку это ASPX, вам не хватает того факта, что происходит обратная передача, и эта переменная не имеет значения (следовательно, 0) при перезагрузке страницы. Вы должны прочитать «Жизненный цикл страницы». Вам нужно будет сохранить значение в переменной Session, чтобы сохранить его значение. – OneFineDay

ответ

0

Вам не нужна переменная Public из того, что я вижу, поэтому ограничьте область до самой низкой. Вы можете использовать свойство как это:

Public Class sample 

    Private Property IntA As Integer 
    Get 
     Return TryCast(Session("IntA"), Integer) 
    End Get 
    Set(value As Integer) 
     Session("IntA") = value 
    End Set 
    End Property 

    Protected Sub button1(sender As Object, e As EventArgs) 
    IntA = 2 
    End Sub 

Protected Sub button2(sender As Object, e As EventArgs) 
    Response.Write(IntA.ToString) 
End Sub 

End Class 
+0

@IWantToLearn, вы видели мой ответ. – OneFineDay

0

Объявляет переменную inta в Shared:

Public Shared inta As Integer 
Смежные вопросы