Я новичок в веб-формах ...
1) Моя веб-форма по умолчанию - Default.aspx.Он имеет несколько полей со списком и элемент управления Button: все веб-элементы управления ASP.Net.
2) В Page_load () я создаю объект C # "ScoringInfo ()":
protected void Page_Load(object sender, EventArgs e)
{
scoringInfo = new ScoringInfo();
...
3) ScoringInfo считывает некоторую информацию из базы данных в переменные-члены и использует переменные-члены для заполнения полей со списком:
scoringInfo.GetOpenCrossByDate(dt, openCrossInfo);
cbAvailableBowlers.Items.Clear ();
foreach (OpenCrossInfoRec rec in openCrossInfo)
string s =
String.Format(
"Lane {0:00}: {1}",
rec.laneNo, rec.dateTime);
cbAvailableBowlers.Items.Add(s);
...
4) Вот переменные-члены:
...
protected ScoringInfo scoringInfo;
protected List leagueInfo = new List();
protected List openCrossInfo = new List();
5) Когда пользователь нажимает кнопку, я хочу отобразить вторую страницу ASPX, которая обрабатывает конкретный элемент комбинированного списка, выбранный пользователем.Вот мой обработчик события OnClick:
protected void bTest_Click1(object sender, EventArgs e)
{
int idx = cbAvailableBowlers.SelectedIndex;
Session["openCrossLaneUniqueId"] = openCrossInfo[idx].laneUniqueId;
...// THIS FAILS:
// "ARGUMENT OUT OF RANGE" exception;
// "idx" is 0; openCrossInfo[] list is empty...
Это не работает ... потому что переменная-член "openCrossInfo []" и свойство комбинированного окна SelectedIndex, похоже, больше не действуют, когдаbTest_Click1 выполняется!
В: Как / где я могу сохранить состояние интерфейса для других, последующих страниц в том же сеансе ???
Заранее спасибо!