Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_ekzamenu.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
563.9 Кб
Скачать
  1. Связывание элементов управления Web Form со списками данных. Примеры.

Связывание с простыми списками данных (repeated-value binding):

  • При связывании списка с данными создаются элементы пользовательского интерфейса для каждого элемента списка.

  • Каждый элемент содержит текст (показываемый пользователю) и необязательное значение (которое не показывается)

  • Используется для простых списочных ЭУ:

    • <asp:ListBox>

  • Единственный или множественный выбор

    • <asp:DropDownList>

    • <asp:RadioButtonList>

    • <asp:CheckBoxList>

Алгоритм связывания с простыми списками данных:

  • Шаги для связывания с простыми списками данных

    • Создать списочный ЭУ

    • Создать коллекцию

    • Задать ЭУ значение DataSource

    • Задать (необязательно) поля DataTextField и DataValueField

    • Вызвать метод DataBind()

Пример:

protected void Page_Load(object sender, System.EventArgs e)

{

if (!Page.IsPostBack) {

// Create the data source.

Hashtable ht = new Hashtable();

ht.Add("Lasagna", "Key1");

ht.Add("Spaghetti", "Key2");

ht.Add("Pizza", "Key3");

// Set the DataSource property for the controls.

Select1.DataSource = ht;

Select2.DataSource = ht;

Listbox1.DataSource = ht;

DropdownList1.DataSource = ht;

CheckList1.DataSource = ht;

OptionList1.DataSource = ht;

// Bind the controls.

this.DataBind();

}

Пример источника данных (Data Source):

Пример связывания со списком данных:

DataView GetSampleData() {

DataSet ds;

SqlConnection cxn;

SqlDataAdapter adp;

cxn = new SqlConnection("server=localhost; " +

"uid=sa;pwd=;database=Northwind");

adp = new SqlDataAdapter(

"select CategoryID, CategoryName from Categories", cxn);

ds = new DataSet();

adp.Fill(ds, "Categories");

return ds.Tables["Categories"].DefaultView;

}

void Page_Load(object s, EventArgs e) {

ListBox1.DataSource = GetSampleData();

ListBox1.DataValueField = "CategoryID";

ListBox1.DataTextField = "CategoryName";

ListBox1.DataBind();

}

<asp:ListBox id="ListBox1" runat="server" />

void Page_Load(object s, EventArgs e) {

ListBox1.DataBind();

}

<asp:ListBox id="ListBox1" runat="server"

DataSource=<%# GetSampleData() %>

DataValueField=“CategoryID”

DataTextField=“CategoryName” />

  1. Элементы управления Web Form - источники данных. Элемент SqlDataSource и его использование для работы с реляционными данными. Выполнение параметризованных команд с использованием SqlDataSource.

Типы элементов – источников данных:

  • для работы с табличными источниками данных

    • SqlDataSource,

    • AccessDataSource и

    • ObjectDataSource

  • для работы с иерархическими данными

    • XmlDataSource и

    • SiteMapDataSource

Пример описания источника данных:

<asp:AccessDataSource ID="AccessDataSource1"

runat="server"

DataFile="~/App_Data/guestbook.mdb"

SelectCommand="SELECT [WriteDate], [UserName], [UserMail], [Message] FROM [guestbook]”>

</asp:AccessDataSource>

Класс SqlDataSource объединяет в себе возможности SqlConnection и SqlDataAdapter (плюс дополнительные).

<asp:SqlDataSource ID="SqlDataSource1" runat="server"

ConnectionString="<%$ ConnectionStrings:DemoBaseConnectionString1 %>"

ProviderName="<%$ ConnectionStrings:DemoBaseConnectionString1.ProviderName %>"

</asp:SqlDataSource>

<asp:SqlDataSource ID="sourceEmployees" runat="server"

ProviderName="System.Data.SqlClient"

ConnectionString="<%$ ConnectionStrings:Northwind %>"

SelectCommand="SELECT EmployeeID, FirstName, LastName, Title, City FROM Employees"

UpdateCommand="UPDATE Employees SET

FirstName=@FirstName, LastName=@LastName,

Title=@Title, City=@City FROM Employees WHERE

EmployeeID=@EmployeeID">

</asp:SqlDataSource>

Извлечение записей:

Логика команд SqlDataSource применяется через четыре свойства:

  • SelectCommand,

  • InsertCommand,

  • UpdateCommand

  • DeleteCommand;

все они принимают строку.

Строка может быть SQL-кодом (в этом случае соответствующее свойство SelectCommandType, InsertCommandType, UpdateCommandType или DeleteCommandType должно быть установлено в Text — значение по умолчанию)

либо именем хранимой процедуры (в этом случае типом команды является StoredProcedure).

Пример извлечения записей:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:toplivoConnectionString1 %>"

DeleteCommand="DELETE FROM [Fuels] WHERE [FuelID] = @FuelID"

InsertCommand="INSERT INTO [Fuels] ([FuelType], [FuelDensity]) VALUES (@FuelType, @FuelDensity)"

SelectCommand="SELECT [FuelID], [FuelType], [FuelDensity] FROM [Fuels]"

UpdateCommand="UPDATE [Fuels] SET [FuelType] = @FuelType, [FuelDensity] = @FuelDensity WHERE [FuelID] = @FuelID">

<DeleteParameters>

<asp:Parameter Name="FuelID" Type="Int32" />

</DeleteParameters>

<InsertParameters>

<asp:Parameter Name="FuelType" Type="String" />

<asp:Parameter Name="FuelDensity" Type="Single" />

</InsertParameters>

<UpdateParameters>

<asp:Parameter Name="FuelType" Type="String" />

<asp:Parameter Name="FuelDensity" Type="Single" />

<asp:Parameter Name="FuelID" Type="Int32" />

</UpdateParameters>

</asp:SqlDataSource>

Параметризированные команды:

Типы параметров

Источник

Управляющий дескриптор

Описание

Свойство элемента управления

<asp:ControlParameter>

Свойство другого элемента управления на странице

Строковое значение запроса

<asp:QueryStringParameter>

Значение из текущей строки запроса

Значение состояния сеанса

<asp:SessionParameter>

Значение, сохраненное в текущем сеансе пользователя

Значение cookie-набора

<asp:CookieParameter>

Значение из любого cookie-набора, присоединенного к текущему запросу.

Значение профиля

<asp:ProfileParameter>

Значение из текущего пользовательского профиля

Переменная формы

<asp:FormParameter>

Значение, отправленное странице от элемента управления вводом. Обычно вместо этого будет использоваться свойство элемента управления, но если у соответствующего элемента управления отключена поддержка состояния представления, может понадобиться извлечь значение непосредственно из коллекции Forms

Значение маршрута

<asp:RouteParameter>

Значение из маршрутизированного URL

Программная установка

<asp:Parameter>

Базовый класс, от которого наследуются все прочие параметры. Никогда не устанавливается автоматически, поэтому он имеет смысл, когда для установки значения параметра вручную используется код

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]