Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > ASP.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2013, 17:34   #1
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
Смех ASP.NET Что делать с переменными?

Добрый день, форумчане!
Помогите, пожалуйста! Нахожусь в тупиковой ситуации!

По заданию мне надо реализовать тестовые билеты на ASP.Net

Логика работы программы такова:
1. Загружается страница, в TextBox выводится текст вопроса, в RadioButtonList вывожу варианты ответа.
2. По нажатию кнопки запоминается выбранный ответ и выводится следующий вопрос.
(Тексты вопросов и ответов, правильные ответы хранятся в базе данных и выбираются оттуда набором запросов в функции public void DoQuery()).
Также необходимо ограничить количество вопросов в билете, скажем, до 5.

ПРОБЛЕМА!
У меня весь код написан в классе
public partial class Paper1 : System.Web.UI.Page

В самом начале объявляю переменную label (считает количество вызовов функции DoQuery())и два списка List<int> для хранения правильных ответов и выбранных пользователем.
Но! При нажатии кнопки страница загружается каждый раз заново, тем самым заново объявляя переменные!

Подскажите, как бы лучше выкрутиться из данной ситуации?
No_Comments вне форума Ответить с цитированием
Старый 03.01.2013, 21:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Поправь меня, но по-моему static переменные запоминаются в сеансе. Где-то я читал о способах запоминания переменок помимо hidden полей в странице.
Или используй сессионные переменные :http://msdn.microsoft.com/en-us/library/ms972429.aspx

Вот кстати как раз для тебя еще решение: http://www.rsatl.ru/develop/asp/globalasax.htm
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.01.2013, 16:28   #3
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Спасибо за подсказку! static поставила перед переменными - все работает, как надо.

Другая проблема.
Работаю с RadioButtonList. Пытаюсь получить индекс выбранного элемента.
Но ничего не получается.
Код:
ans.Add(RadioButtonList1.SelectedValue.ToString());
ans - это объект типа List<string>
Пробовала использовать все: SelectedIndex, SelectedItem, SelectedValue. Никакой реакции...

Причем мне не понятно, почему добавить элемент я могу кодом
Код:
RadioButtonList1.Items.Add(item);
а получить индекс выбранного элемента не могу?

Последний раз редактировалось Stilet; 04.01.2013 в 21:53.
No_Comments вне форума Ответить с цитированием
Старый 04.01.2013, 21:55   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А ты отладчиком пройдись. Код вообще будет выполнятся?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.01.2013, 22:28   #5
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Все! Разобралась!!!
Методом проб и ошибок, а точнее методом тыка в следующей сторке
Код:
<asp:RadioButtonList ID="RadioButtonList1" runat="server" CellSpacing="10"
ToolTip="Выберете правильный ответ" AppendDataBoundItems="True" ViewStateMode="Disabled" 
DataSourceID="SqlDataSource1" DataTextField="Text_answer" DataValueField="ID_text_answer" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
            </asp:RadioButtonList>
поставила
Код:
ViewStateMode="Enabled"
No_Comments вне форума Ответить с цитированием
Старый 05.01.2013, 01:18   #6
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Последний вопрос!
Хочу вставить картинку на страничку. Но, url картинки у меня зависит от выполнения или невыполнения определенного условия, т.е. является переменной (ImUrl).
Как правильно записать строку
Код:
<asp:Image ImageUrl="" runat="server" ImageAlign="Middle"/>
Что нужно написать в ImageUrl="" ?
No_Comments вне форума Ответить с цитированием
Старый 05.01.2013, 11:03   #7
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Пробовала в C#-коде на странице написать
Код:
Response.Write("<asp:Image ImageUrl=\"~/1.gif\" runat=\"server\" ImageAlign=\"Middle\"/>");
Но тоже почему-то не помогает...
No_Comments вне форума Ответить с цитированием
Старый 05.01.2013, 12:36   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А что за условие?
Код:
if (условие)
 Response.Write("<asp:Image ImageUrl=Урлище1 runat=\"server\" ImageAlign=\"Middle\"/>");
else
 Response.Write("<asp:Image ImageUrl=Урлище2 runat=\"server\" ImageAlign=\"Middle\"/>");
Банально но надежно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.01.2013, 13:51   #9
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Урлище1 = "1.gif" - так писала. Не работает.
Урлище1 = "~/1.gif" - так писала, тоже не работает.


Я пошла другим путем. Может, не так элегантно, но зато работает!
Код:
ImUrl = "<img src=\"1.gif\" align=\"middle\"> </img> ";
Response.Write(ImUrl);
No_Comments вне форума Ответить с цитированием
Старый 05.01.2013, 15:19   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Может, не так элегантно
Моя не понять
Цитата:
но зато работает!
Вот и хорошо. победителей не судят.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net gammaray Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 22.11.2010 17:36
Вопрос к тем, кто имеет представление о PHP, JSP, ASP, ASP.NET child_of_july Помощь студентам 0 07.06.2008 00:25