Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Lagsterius
1 / 1 / 1
Регистрация: 05.11.2010
Сообщений: 27
1

При любом действии сбрасываются переменные. Как этого избежать

12.02.2012, 12:33. Просмотров 1186. Ответов 7
Метки нет (Все метки)

У меня проблема небольшая. Пишу приложение ASP.net, при любой действии сбрасываются переменные. Как сделать так чтобы они не сбрасывались?
Вот пример:

Default.aspx
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication1.WebForm1" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Just page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btn_1" Text="Click me" runat="server" />
    </div>
    </form>
</body>
</html>
Default.aspx.vb
vb.net
1
2
3
4
5
6
7
8
9
Public Class WebForm1
    Inherits System.Web.UI.Page
    Public x As Integer
 
    Protected Sub btn_1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_1.Click
        MsgBox(Str(x))
        x += 1
    End Sub
End Class
Каждый раз при клике выбивает число 0
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 12:33
Ответы с готовыми решениями:

Чёрный экран при любом действии
Здравствуйте. Уже идеи, что ещё можно сделать, кончились. День назад установила все, в том числе...

Загрузка процессора 100% при любом действии
Процессор загружается на 100% при любой операции(будь-то браузер, копирование с флешки, установка...

Очень долгая загрузка, зависание при любом действии!
8(4+4) Гб ОЗУ, Intel Core i5 , nVidia GeForce 640m\intel HD4xxx Всем доброго времени суток,...

При нажатии стрелок фокус передаётся по компонентам на форме. Как этого избежать ?
Приветствую! Мне необходимо сделать так, чтобы при нажатии стрелок фокус не передавался другим...

Постоянно звук "ошибка", при любом действии...
что бы это значило,набираю текст, он набирается сам,как эффект залипания кнопок,постоянно звук...

7
andrii
183 / 183 / 53
Регистрация: 10.04.2009
Сообщений: 491
12.02.2012, 15:47 2
у вас нету
HTML5
1
2
3
4
5
6
 <asp:Button id="Button1"
           Text="Submit"
////////////////////
           OnClick="SubmitBtn_Click" 
///////////////////
           runat="server"/>
помотрите как правильно создавать кнопки
0
Lagsterius
1 / 1 / 1
Регистрация: 05.11.2010
Сообщений: 27
12.02.2012, 16:04  [ТС] 3
Честно говоря не совсем понял свою ошибку, ведь в этой строке указано в самом конце Handles
vb.net
1
Protected Sub btn_1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_1.Click
Но на всякий случай поменял на ваш вариант:
HTML5
1
<asp:Button ID="btn_1" Text="Click me" runat="server" onclick="btn_1_click" />
vb.net
1
2
3
4
    Protected Sub btn_1_Click(ByVal sender As Object, ByVal e As EventArgs)
        x += 1        
       MsgBox(Str(x))
    End Sub
Да и проблема не в том что действие не происходит, а в том что оно происходит, и после происхождения все переменные обнуляет..(
Для наглядности в VB-шной функции поменял строки, как и следовало ожидать постоянно 1-цы выбивает
0
sau
2108 / 1684 / 289
Регистрация: 22.07.2011
Сообщений: 6,422
Завершенные тесты: 1
12.02.2012, 17:28 4
При каждом запросе экземпляр класса WebForm1 создается заново, не забываем что это веб.
Переменную можно записать во вьюстейт или сессию, либо статичной сделайте.

http://msdn.microsoft.com/ru-ru/library/75x4ha6s.aspx
1
12.02.2012, 17:28
Lagsterius
1 / 1 / 1
Регистрация: 05.11.2010
Сообщений: 27
12.02.2012, 18:10  [ТС] 5
sau, спасибо помогло, сделал это с помощью сессий.
Но возник вопрос: как определить существует ли сессия с именем "x1"
0
sau
2108 / 1684 / 289
Регистрация: 22.07.2011
Сообщений: 6,422
Завершенные тесты: 1
12.02.2012, 18:52 6
C#
1
Session["x1"]!=null
1
levka9
42 / 42 / 9
Регистрация: 27.06.2010
Сообщений: 91
13.02.2012, 13:46 7
Не используйте сессии для хранения временных данных относящихся к одной странице.

Это лишнее, сессия использует оп. памяти + данные которые внесены в неё.

Garbage collector также её не чистит.

Лучше использовать hidefield, viewstate или cache браузера(cookies).
1
Lagsterius
1 / 1 / 1
Регистрация: 05.11.2010
Сообщений: 27
13.02.2012, 16:39  [ТС] 8
Спасибо за совет буду знать =)
но то что я просил действительно относилось к сайту в целом)) я просто пример по-проще привел))
0
13.02.2012, 16:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2012, 16:39

winsock сам соединеняет пакеты при получении или отправлении. как этого избежать
Привет! короче проблема в том что когда посылаешь несколько пакетов подряд то они содиняются в...

DbCtrlGrid: при скролле до конца автоматически создается новая пустая запись. Как этого избежать?
Уважаемые форумчане! Столкнулся с проблемой при работе с DBCtrlGrid: при скролле до конца...

При использовании read или readln строка ввода опускается все ниже-ниже. Как-то этого избежать?
При каждом использовании будь то read или readln строка ввода опускается все ниже-ниже, возможно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru