Иногда невозможно знать наперед, сколько текстовых полей, переключателей, строк таблиц или других элементов управления потребуется, поскольку это может зависеть от других факторов вроде количества записей, хранимых в базе данных, или пользовательского ввода. ASP.NET предлагает решение этой проблемы — вы можете просто создать экземпляры необходимых серверных элементов управления HTML, установить их свойства с помощью объектно-ориентированного подхода, использованного в предыдущем примере, а затем добавить их в коллекцию Controls страницы. Этот метод был представлен в предыдущей главе и действует одинаково по отношению к серверным элементам управления HTML и Web.
Например, следующий код динамически создает таблицу с пятью строками и четырьмя ячейками на строку, устанавливает их цвет, текст и отображает все это на странице. Интересной особенностью является то, что в файле .aspx дескрипторы элементов управления не объявляются. Вместо этого они генерируется программно.
protected void Page_Load(object sender, System.EventArgs e)
{
// Создание нового объекта HtmlTable.
HtmlTable table1 = new HtmlTable();
// Установка свойств таблицы, связанных с форматированием.
table1.Border = 1;
table1.CellPadding = 3;
table1.CellSpacing = 3;
table1.BorderColor = "red";
// Начало добавления содержимого к таблице.
HtmlTableRow row;
HtmlTableCell cell;
for (int i=1; i<=5; i++)
{
// Создание новой строки и установка для нее цвета фона.
row = new HtmlTableRow();
row.BgColor = (i%2==0 ? "lightyellow" : "lightcyan");
for (int j=1; j<=4; j++)
{
// Создание ячейки и установка ее текста.
cell = new HtmlTableCell();
cell.InnerHtml = "Row: " + i.ToString() +
"<br />Cell: " + j.ToString();
// Добавление ячейки к текущей строке.
row.Cells.Add(cell);
}
// Добавление строки к таблице.
table1.Rows.Add(row);
}
// Добавление таблицы к странице.
this.Controls.Add(table1);
}
предыдущая следующая страница оглавление
156