Створення таблиці зі змінним числом осередків Vusial Basic
При Web-будівництві часто доводиться працювати з таблицями для різних цілей. У цьому прикладі продемонструємо, як за допомогою двох списків, що розкриваються, DropDownList можна замовляти необхідну кількість рядів і стовпців у таблиці.
Таблиця зі змінним числом осередків, керована двома списками, що розкриваються
Програмуючи поставлене завдання, запустимо систему VB2010 і створимо новий проект шаблону Empty ASP.NET Web Application, назвемо його tab.sln. До поточного проекту додамо Web-форму. Для цього в пункті меню Project виберемо команду Add New Item і в вікні, що з'явилося, двічі клацнімо шаблон Web Form.
Далі в конструкторі WebForm1.aspx з панелі елементів Toolbox в проектовану форму перенесемо елемент управління Table, два списки DropDownList, що розкриваються, дві мітки Label і командну кнопку Button. Тепер, використовуючи, наприклад, контекстне меню проекту Web-форми, вибираємо команду View Code, потрапляємо на вкладку файлу програмної підтримки WebForm1.aspx.vb. У списку нижче наведено відповідний програмний код.
[vb] ‘ Таблиця зі змінним числом осередків, керована двома ‘ списками, що розкриваються. Web-сторінка дозволяє за допомогою ' двох розкривних списків DropDownList замовити необхідне ' число рядів і стовпців у таблиці, а потім будувати замовлену таблицю. PublicClass WebForm1 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load Page.Title ="Вкажіть розмірність таблиці If Page.IsPostBack = True Then Exit Sub ' Заповнювати випадаючий список необхідно ' при першому завантаженні сторінки IsPostBack = False, ' інакше будуть додаватися нові пункти у випадаючому 'список при кожному перевантаженні сторінки: DropDownList1.Items.Add("1") DropDownList1.Items.Add("2") DropDownList1.Items.Add("3") DropDownList2. Items.Add("1") DropDownList2.Items.Add("2") DropDownList2.Items.Add("3") Table1.Caption = "Назва таблиці" Table1. CaptionAlign = TableCaptionAlign.Right Table1.ToolTip ="Вкажи кількість рядів і стовпців і натисніть кнопку" Table1.BorderStyle = BorderStyle.Solid Table1.Gr > Label1.Text = "У рядків" Label2.Text = "У стовпців" Button1.Text = "Оновити таблицю" End Sub Private Sub Button1_Click(ByVal senderAs Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i, j AsInteger For i = 1 ToInt32.Parse(DropDownList1.SelectedItem.Value) Dim РЯДAsNew TableRow For j = 1 ToInt .Parse(DropDownList2.SelectedItem.Value) Dim осередокAsNew TableCell осередок.Text = "Ряд " & i & "Кільк" & j Скринька.HorizontalAlign = HorizontalAlign.Center Ряд. [/vb]
Як видно з програмного коду, при завантаженні сторінки Page_Load відбувається заповнення значеннями списків DropDownList, що розкриваються, причому заповнення здійснюється тільки при початковому завантаженні сторінки, коли IsPostBack = False. Якщо ми не передбачили обхід присвоєння початкових значень при IsPostBack = True, то значення у списку додавалися б щоразу при черговому перезавантаженні сторінки. Зауважимо, що ми могли б і не контролювати IsPostBack, якби надання початкових значень виконали б у процедурі обробки події ініціалізації сторінки Page_PreInit (у версії VB.NET ця подія називалася Page_Init).
При обробці події клацання на кнопці Оновити таблицю маємо два вкладені цикли.Параметри обох циклів i і j змінюються від 1 до значення, вибраного користувачем у відповідному списку, що розкривається. Метод Int32.Parse простору імен System конвертує рядок з відповідної властивості об'єкта DropDownList У змінну типу Integer. Зовнішній цикл перебирає ряди таблиці, а внутрішній - осередки таблиці. У тілі зовнішнього циклу чергова ітерація створює новий об'єкт РЯД класу TableRow, аналогічно в тілі внутрішнього циклу щоразу створюється новий Об'єкт осередку класу TableCell.
Для старту створеного проекту натисніть клавішу. На цьому можна закінчити статтю про створення таблиці в Vusial Basic з кількістю осередків, що задаються, в стовпцях і рядках.