powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Переменная класса
13 сообщений из 13, страница 1 из 1
Переменная класса
    #33042725
Vladimir1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть переменная класса
Protected Code as Int32

и есть пара процедур.
В одной из них этой переменной присваивается некое значение.
В другой - (обработчик события onclick кнопки на веб форме) проверяем
if Code=0 then exit sub и т.д.

Так вот, эта переменная после нажатия кнопки всегда равна нулю.
А происходит это так как происходит инициализация заново веб формы и соответственно Protected Code as Int32 делает Code равной нулю.

Вопрос: как сделать чтобы переменная хранила свое значения до закрытия формы или до явного ее изменения??

Помагите новичку please!

Спасибо!
...
Рейтинг: 0 / 0
Переменная класса
    #33042739
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотри в сторону IsPostBack и Load/Save ViewState
...
Рейтинг: 0 / 0
Переменная класса
    #33042750
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пиши ее во viewstate...
туда:
ViewState["tmp"] = Code;

обратно:
Code = (Int32)ViewState["tmp"];

учти, вьюстейт - CaseSensitive;

с уважением...
...
Рейтинг: 0 / 0
Переменная класса
    #33042808
Vladimir1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sam Andrewsпиши ее во viewstate...
туда:
ViewState["tmp"] = Code;

обратно:
Code = (Int32)ViewState["tmp"];

учти, вьюстейт - CaseSensitive;

с уважением...

Огромное спасибо,

Не сочтите за наглость еще один небольшой вопросик.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
  Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
        Dim a As Integer
        Code = CType(e.Item.Cells( 1 ).Text, Integer)
        ViewState("CodeKgt")=Code
        Dim con As New SqlClient.SqlConnection(ConStr)
        con.Open()
        Dim sqlCom As New SqlClient.SqlCommand("SELECT * FROM Справочник_Юр_лиц where Код_Контрагента =" & Code, con)
        Dim rd As SqlClient.SqlDataReader = sqlCom.ExecuteReader

        Try
            rd.Read()
            a = rd( 0 )
            Try
                txtkgt.Text = rd( 1 )
            Catch
            End Try
            Try
                txtINN.Text = rd( 2 )
            Catch
            End Try

            и т.д.  15  раз
   catch
   end try 

Поля в спрвочнике могут быть NULL

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



Спасибо
...
Рейтинг: 0 / 0
Переменная класса
    #33042860
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
if(rd( 0 ) != DBNull.Value)
  txtkgt.Text = rd( 0 );
else
  txtkgt.Text = "";

с уважением...
...
Рейтинг: 0 / 0
Переменная класса
    #33042867
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можешь еще так сделать:

SELECT ISNULL (field_from_db, '')

тогда Null возвращаться не будет...

с уважением...
...
Рейтинг: 0 / 0
Переменная класса
    #33042890
Vladimir1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое СПАСИБО.
...
Рейтинг: 0 / 0
Переменная класса
    #33043162
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дополню про ViewState. Сохранять и загружать состояние лучше в перегруженных процедурах SaveViewState и LoadViewState, дабы не запутаться
подробнее в msdn, ссылки можно найти здесь
...
Рейтинг: 0 / 0
Переменная класса
    #33044547
Str
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir1234Вопрос: как сделать чтобы переменная хранила свое значения до закрытия формы или до явного ее изменения??


Есть еще прикольный способ - простой, но не всем нравится.
Создаем на форме Label или TextBox и делаем их невидимыми (Visible=false)
После этого присваиваем, считываем и т.п. в любое время без всяких сессий.
...
Рейтинг: 0 / 0
Переменная класса
    #33045429
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что значит не всем нравится? =)
это было одно из решений передачи параметров в классическом asp.., пока не появился viewstate...
при таком способе а) значение видно пользователю, б) все равно пишется во viewstate, если только прямо не запретить элементу это делать...

с уважением...
...
Рейтинг: 0 / 0
Переменная класса
    #33046233
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrСоздаем на форме Label или TextBox и делаем их невидимыми (Visible=false)
После этого присваиваем, считываем и т.п. в любое время без всяких сессий.что бы вас не назвали ламером - ни когда так не делайте
как правильно заметил Sam Andrews, сохранение данных при таком подходе осуществляется через тот же механизм ViewState
...
Рейтинг: 0 / 0
Переменная класса
    #33047657
gerss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
profil StrСоздаем на форме Label или TextBox и делаем их невидимыми (Visible=false)
После этого присваиваем, считываем и т.п. в любое время без всяких сессий.что бы вас не назвали ламером - ни когда так не делайте
как правильно заметил Sam Andrews, сохранение данных при таком подходе осуществляется через тот же механизм ViewState

Не совсем согласен с "никогда". В списке HtmlСontrols есть контрол Hidden. Если его положить на форму и сделать серверным - ИМХО очень простой и удобный способ передавать нечто между серверным и клиентским (javascript) кодом. Так что "Никогда не говори "Никогда"" ( (с) не мой :) )
...
Рейтинг: 0 / 0
Переменная класса
    #33053090
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerss profil StrСоздаем на форме Label или TextBox и делаем их невидимыми (Visible=false)
После этого присваиваем, считываем и т.п. в любое время без всяких сессий.что бы вас не назвали ламером - ни когда так не делайте
как правильно заметил Sam Andrews, сохранение данных при таком подходе осуществляется через тот же механизм ViewState

Не совсем согласен с "никогда". В списке HtmlСontrols есть контрол Hidden. Если его положить на форму и сделать серверным - ИМХО очень простой и удобный способ передавать нечто между серверным и клиентским (javascript) кодом. Так что "Никогда не говори "Никогда"" ( (с) не мой :) )
ну это уже подмена понятий. Hidden для этого и создан, и механизм ViewState организован как раз с применением hidden-полей.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Переменная класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]