Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пак Новакова + / LabASP2(1-8)СоловьёвЯрославцева.doc
Скачиваний:
47
Добавлен:
03.06.2014
Размер:
2.59 Mб
Скачать

Упражнение 5 - Тестирование свойств и метода пользовательского элемента управления

Установка свойств пользовательского элемента управления декларативно

  1. В режиме исходного текста декларативно задайте AllowDuplicates с помощью

синтаксиса, как в следующем примере:

<uc1:ListPicker id="ListPicker1" Runat="server"

AllowDuplicates="true" />

  1. Добавим обработчики событий

  • Для AllowDuplicates

protected void AllowDuplicates_CheckedChanged(Object sender, EventArgs e)

{ ListPicker1.AllowDuplicates = AllowDuplicates.Checked;

}

  • Для AddItem

protected void AddItem_Click(object sender, EventArgs e)

{

ListPicker1.AddSourceItem(Server.HtmlEncode(NewItem.Text));

}

  • Для LoadFiles

protected void LoadFiles_Click(object sender, EventArgs e)

{

String path = Server.MapPath(Request.ApplicationPath);

String[] files = System.IO.Directory.GetFiles(path);

foreach(String filename in files)

{

ListPicker1.AddSourceItem(filename);

}

}

  • Для ShowSelection

protected void ShowSelection_Click(object sender, EventArgs e)

{

String selectedItemsString = "";

foreach(ListItem lItem in ListPicker1.SelectedItems)

{

selectedItemsString += "<br>" + lItem.Text;

}

Selection.Text = selectedItemsString;

}

  • Для ClearSelection

protected void ClearSelection_Click(object sender, EventArgs e)

{

ListPicker1.ClearAll();

}

  1. Запускаем программу

Листинг:

Упр. 3

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class ListPicker : System.Web.UI.UserControl

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void AddAll_Click(object sender, EventArgs e)

{

TargetList.SelectedIndex = -1;

foreach (ListItem li in SourceList.Items)

{

AddItem(li);

}

}

protected void AddOne_Click(object sender, EventArgs e)

{

if (SourceList.SelectedIndex >= 0)

{

AddItem(SourceList.SelectedItem);

}

}

protected void Remove_Click(object sender, EventArgs e)

{

if (TargetList.SelectedIndex >= 0)

{

TargetList.Items.RemoveAt(TargetList.SelectedIndex);

TargetList.SelectedIndex = -1;

}

}

protected void AddItem(ListItem li)

{

TargetList.SelectedIndex = -1;

TargetList.Items.Add(li);

}

}

Упр. 4

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class ListPicker : System.Web.UI.UserControl

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void AddAll_Click(object sender, EventArgs e)

{

TargetList.SelectedIndex = -1;

foreach (ListItem li in SourceList.Items)

{

AddItem(li);

}

}

protected void AddOne_Click(object sender, EventArgs e)

{

if (SourceList.SelectedIndex >= 0)

{

AddItem(SourceList.SelectedItem);

}

}

protected void Remove_Click(object sender, EventArgs e)

{

if (TargetList.SelectedIndex >= 0)

{

TargetList.Items.RemoveAt(TargetList.SelectedIndex);

TargetList.SelectedIndex = -1;

}

}

protected void AddItem(ListItem li)

{

TargetList.SelectedIndex = -1;

if (this.AllowDuplicates == true)

{

TargetList.Items.Add(li);

}

else

{

if (TargetList.Items.FindByText(li.Text) == null)

{

TargetList.Items.Add(li);

}

}

}

public ListItemCollection SelectedItems

{

get { return TargetList.Items; }

}

public Boolean AllowDuplicates

{

get

{

return (Boolean)ViewState["allowDuplicates"];

}

set

{

ViewState["allowDuplicates"] = value;

}

}

public void AddSourceItem(String sourceItem)

{

SourceList.Items.Add(sourceItem);

}

public void ClearAll()

{

SourceList.Items.Clear();

TargetList.Items.Clear();

}

protected void RemoveSource_Click(object sender, EventArgs e)

{

if (SourceList.SelectedIndex >= 0)

{

SourceList.Items.RemoveAt(SourceList.SelectedIndex);

SourceList.SelectedIndex = -1;

}

}

}

Упр. 5

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class HostUserControl : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void AllowDuplicates_CheckedChanged(object sender, EventArgs e)

{

ListPicker1.AllowDuplicates = AllowDuplicates.Checked;

}

protected void AddItem_Click(object sender, EventArgs e)

{

ListPicker1.AddSourceItem(Server.HtmlEncode(NewItem.Text));

}

protected void LoadFiles_Click(object sender, EventArgs e)

{

String path = Server.MapPath(Request.ApplicationPath);

String[] files = System.IO.Directory.GetFiles(path);

foreach (String filename in files)

{

ListPicker1.AddSourceItem(filename);

}

}

protected void ShowSelection_Click(object sender, EventArgs e)

{

String selectedItemsString = "";

foreach (ListItem lItem in ListPicker1.SelectedItems)

{

selectedItemsString += "<br>" + lItem.Text;

}

Selection.Text = selectedItemsString;

}

protected void ClearSelection_Click(object sender, EventArgs e)

{

ListPicker1.ClearAll();

Selection.Text = "";

}

}

Результат работы программы:

Рис. 3. Результат упражнения 3

Рис. 4. Итоговый результат

Вывод:В ходе лабораторной работы мы научились создавать и использовать пользовательский элемент управления ASP.NET, действующий как элемент управления выбора.

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