Основы ASP.NET 2.0



         

Привязка к данным - часть 3


<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Попробуем хэш-таблицу</title> </head> <body> <form id="form1" runat="server"> <div> <h3>Ежедневник </h3> Введите дату между 1/6/2006 и 30/6/2006 <asp:Calendar id="calDays" runat="server" OnSelectionChanged="calSelectChange" VisibleDate="06/06/2006" ></asp:Calendar> <br /> <br /> <asp:Label id="lblShow" runat="server"></asp:Label> </div> </form> </body> </html>

Здесь ключом хэш-таблицы является дата. Convert.ToDateTime конвертирует строку в тип даты. VisibleDate гарантирует, что на календаре будет июнь 2006 года. Если значений по ключу в таблице нет, то индексатор просто возвращает null. Значения можно вводить в любом порядке.

Хотелось бы добавить в страницу новую возможность введения новых записей. Можно ввести новые элементы управления — строку ввода и кнопку для подачи данных. При обработке нажатия на кнопку добавим в хэш-таблицу новое значение:

void Button1_Click(object sender, EventArgs e) { hshDays[calDays.SelectedDate]=TextBox1.Text; }

Эта страница не работает. Дело в том, что страница загружается заново, когда меняется дата. Хэш-таблица создается заново, и введенные в нее значения теряются. Как же решить эту проблему? Сделаем хэш-таблицу статической переменной:

static Hashtable hshDays; void calSelectChange(Object sender, EventArgs e) { DateTime datDateIn = calDays.SelectedDate;




Содержание  Назад  Вперед