2010-03-25 12 views
0

У меня есть следующая переменная, которая создает проблему, когда я использую экземпляр экземпляров одной и той же веб-формы. Не могли бы вы сообщить мне, как я могу использовать какие-то переменные, кроме общих, которые я могу использовать для достижения этой цели?какую переменную я могу использовать вместо общего?

Public strRoleType As String = String.Empty 
Protected Shared isAreaSelected As Integer = 0 
Protected Shared isStoreSelected As Integer = 0 
Protected Shared isHeadOfficeSelected As Integer = 0 
Protected Shared isRegionSelected As Integer = 0 
+1

Извините, но я не понимаю ваш вопрос. Можете ли вы немного объяснить, в чем проблема и/или что вы хотели бы достичь. – Rhapsody

+0

Вы не должны использовать общие переменные в ASP.NET, как это (если это зависит от пользователя), потому что это повлияет на все приложения. Что именно ты пытаешься сделать? – keyboardP

+0

У меня была проблема конфликта сеансов в моей веб-форме, поэтому я изменил все переменные сеанса на общие переменные. Это еще раз проблема .. что вы предлагаете в качестве альтернативы? – SmartestVEGA

ответ

1

Просто удалите Shared и все должно быть хорошо.

+0

nope ... когда я удалил общий .the форма не работает как expeected – SmartestVEGA

+0

Пожалуйста, обратитесь к ссылке .. это точная проблема, с которой я столкнулся: http://stackoverflow.com/questions/2514534/guessess-of-my-session-value-conflicts – SmartestVEGA

+2

Я прочитал ваш и я думаю, что вы очень, очень смущены тем, как работает ASP.NET, когда несколько человек одновременно смотрят на сайт. Я не понимаю, почему вы используете комбинацию переменных страницы и переменных сеанса, и поскольку ваше приложение состоит только из одного .aspx, переменные страницы достаточно уместны (в противном случае используются переменные сеанса). То есть, используйте тот или другой, и вам не нужно «делиться» в своем приложении. –

0

Это много работы, но она создает для хранения на уровне формы

Для каждого из ваших общих переменных преобразовать его в собственность на WebForm. Затем сохраните значения в ViewState

'default to 0 if blank, else convert to int 
Public Property IsAreaSelected() As Integer 
    Get 
        Return If(ViewState("IsAreaSelected") Is Nothing, 0, Cint(ViewState("IsAreaSelected"))) 
    End Get 
    Set(ByVal value As Integer) 
        ViewState("IsAreaSelected") = value 
    End Set 
End Property 

Таким образом, значения остаются на странице.

Обратите внимание: я закодировал это на лету, а не в VS, поэтому вам, возможно, придется его подстроить.

Смежные вопросы