Связывание элементов управления Web Form со списками данных. Примеры.



 

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

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

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

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

– <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();

}

Пример источника данных (DataSource): Пример связывания со списком данных:
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” />

38. Элементы управления 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>

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

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


Дата добавления: 2018-05-02; просмотров: 296; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!