переданих за допомогою першого аргументу. Умова if (control is TextBox) необхідно для визначення типу елемента керування. У разі, якщо поточний елемент управління є текстовим полем, його значення зберігається в стан виду, причому ідентифікатором елемента в колекції ViewState буде ID елемента керування. p> Умова if (control.Controls! = null && SaveNested) дозволяє викликати функцію SaveTextinTextBox у разі, якщо поточний елемент керування має всередині себе вкладені елементи. Таким чином, функція дозволяє здійснити перебір всіх елементів управління, які розташовані на сторінці або всередині іншого елемента, обраного місцем. У нашому прикладі таким може бути об'єкт Table1. p> Функція читання значень ViewState і їх запису у відповідні елементи управління може виглядати наступним чином:
private void RestoreTexttoTextBox (ControlCollection controls, bool)
{(Control control in controls)
{(control is TextBox)
{(ViewState [control.ID]! = null)
((TextBox) control). Text = (string) ViewState [control.ID];
} (control.Controls! = null && saveNested)
{(control.Controls, true);
}
}
}
Вона діє аналогічним чином, будучи рекурсивної. Створимо дві наведені функції всередині вихідного коду розглянутого прикладу, а також внесемо зміни в процедуру обробки натиснення на кнопку "Відправити". Тепер повна версія обробника події натискання на цю кнопку виглядає наступним чином:
protected void Button1_Click (object sender, EventArgs e)
{sname = string.Empty; tbSname = (TextBox) Page.FindControl ("tb_SName"); (tbSname! = null)
{= tbSname.Text;
} _Result.Text = "Здрастуйте," + tb_FirstName.Text + "
"+ sname +" "+ _LastName.Text +"! Ласкаво просимо у додаток ASP.NET ";
lbl_Result.ForeColor = Color.Red;
// зберігаємо значення полів введення в колекції ViewState
SaveTextinTextBox (Table1.Controls, true); _FirstName.Text = "";
tb_LastName.Text = "";
}
Створимо обробник для події натискання на кнопку "Відновити значення полів введення". Він виглядає наступним чином:
protected void btn_RestoreTextBox_Click (object sender, EventArgs e)
{
RestoreTexttoTextBox (Table1.Controls, true);
}
Тепер можна запустити програму. При введенні значень в поля введення тексту і натисненні на кнопку "Відправити" на екран виводиться напис вітання, а текст всередині полів введення знищується. Після натискання на кнопку "Відновити значення полів введення" поля знову заповнюються текстом, введеним раніше. Це стає можливим завдяки використанню колекції ViewState. p>. asax початок всіх початків
У сукупності всі сторінки ASP.NET входять у додаток; воно завантажується як тільки до нього відбувається звернення. Для того щоб дізнатися про це та інші події програми використовується файл global.asax (В VS 2010 global.asax додає...