Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ColorPicker — это расширение ASP.NET AJAX, предоставляющее функциональность выбора цветов на стороне клиента с пользовательским интерфейсом в всплывающем элементе управления. Его можно подключить к любому элементу управления TextBox ASP.NET. Это.
Цель этого руководства — объяснить, как использовать расширитель элементов управления AJAX Control Toolkit ColorPicker. Расширитель элемента управления ColorPicker отображает всплывающее диалоговое окно, позволяющее выбрать цвет. ColorPicker полезен всякий раз, когда вы хотите предоставить интуитивно понятный пользовательский интерфейс для пользователя, чтобы выбрать цвет.
Расширение элемента управления TextBox с помощью расширителя ColorPicker
Представьте себе, например, что вы хотите создать веб-сайт, который позволяет посетителям создавать настраиваемые визитные карточки. Посетители могут ввести текст для визитной карточки и выбрать цвет. Страница ASP.NET в списке 1 содержит два элемента управления TextBox с именем txtCardText и txtCardColor. При отправке формы отображаются выбранные значения (см. рис. 1).
Рис. 01. Простая форма для создания визитной карточки (щелкните, чтобы просмотреть изображение полного размера)
Листинг 1 - CreateCard.aspx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e)
{
// Show the panel
pnlResults.Visible = true;
// Show the selected values
lblSelectedText.Text = txtCardText.Text;
lblSelectedColor.Text = txtCardColor.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Create a Business Card</h1>
<asp:Label
ID="lblCardText"
Text="Card Text"
AssociatedControlID="txtCardText"
runat="server" />
<br />
<asp:TextBox
ID="txtCardText"
Runat="server" />
<br /><br />
<asp:Label
ID="lblCardColor"
Text="Card Color"
AssociatedControlID="txtCardColor"
runat="server" />
<br />
<asp:TextBox
ID="txtCardColor"
Runat="server" />
<br /><br />
<asp:Button
ID="btnSubmit"
Text="Submit"
Runat="server" OnClick="btnSubmit_Click" />
<asp:Panel ID="pnlResults" Visible="false" runat="server">
<h2>Your Selection</h2>
Selected Card Text:
<asp:Label
ID="lblSelectedText"
Runat="server" />
<br />
Selected Card Color:
<asp:Label
ID="lblSelectedColor"
Runat="server" />
</asp:Panel>
</div>
</form>
</body>
</html>
Форма в списке 1 работает, но не обеспечивает отличный пользовательский интерфейс. Пользователь должен ввести цвет в текстовое поле. Если пользователь хочет особый цвет, например, точный оттенок горохового зелёного, пользователь должен выяснить код цвета html без какой-либо помощи.
Вы можете использовать расширитель элемента управления ColorPicker для создания лучшего взаимодействия с пользователем. ColorPicker отображает диалоговое окно для выбора цвета при перемещении фокуса на текстовое поле (см. рисунок 2).
Рис. 02. Расширитель элемента управления ColorPicker (щелкните, чтобы просмотреть изображение полного размера)
Чтобы использовать расширитель элемента управления ColorPicker с формой в листинге 1, необходимо выполнить два шага.
- Добавление элемента управления ScriptManager на страницу
- Добавьте расширение элемента управления ColorPicker на страницу
Прежде чем использовать ColorPicker, необходимо добавить ScriptManager на страницу. Хорошее место для добавления ScriptManager находится прямо под открывающимся на стороне сервера тегом формы<>. Вы можете перетащить ScriptManager на страницу с панели элементов (ScriptManager находится на вкладке "Расширения AJAX"). Кроме того, можно ввести следующий тег в представление источника под открывающим тегом формы на стороне сервера:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
Самый простой способ добавить расширитель элемента управления ColorPicker на страницу — в режиме проектирования. Если навести указатель мыши на txtCardColor TextBox, появится параметр смарт-задачи, позволяющий добавить расширитель (см. рис. 3). Если выбрать этот параметр, откроется мастер расширения (см. рис. 4).
Рис. 03. Добавление расширителя (щелкните, чтобы просмотреть изображение полного размера)
Рис. 04. Выбор расширителя элемента управления с помощью мастера расширения (щелкните, чтобы просмотреть изображение полного размера)
Вы можете выбрать расширитель ColorPicker, чтобы расширить txtCardColor TextBox с помощью расширителя ColorPicker. Нажмите кнопку "ОК", чтобы закрыть диалоговое окно.
После внесения этих изменений источник страницы выглядит как листинг 2.
Перечень 2 — CreateCard.aspx (с ColorPicker)
<%@ Page Language="C#" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e)
{
// Show the panel
pnlResults.Visible = true;
// Show the selected values
lblSelectedText.Text = txtCardText.Text;
lblSelectedColor.Text = txtCardColor.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<h1>Create a Business Card</h1>
<asp:Label
ID="lblCardText"
Text="Card Text"
AssociatedControlID="txtCardText"
runat="server" />
<br />
<asp:TextBox
ID="txtCardText"
Runat="server" />
<br /><br />
<asp:Label
ID="lblCardColor"
Text="Card Color"
AssociatedControlID="txtCardColor"
runat="server" />
<br />
<asp:TextBox
ID="txtCardColor"
AutoCompleteType="None"
Runat="server" />
<cc1:ColorPickerExtender
ID="txtCardColor_ColorPickerExtender"
TargetControlID="txtCardColor"
Enabled="True"
runat="server">
</cc1:ColorPickerExtender>
<br /><br />
<asp:Button
ID="btnSubmit"
Text="Submit"
Runat="server" OnClick="btnSubmit_Click" />
<asp:Panel ID="pnlResults" Visible="false" runat="server">
<h2>Your Selection</h2>
Selected Card Text:
<asp:Label
ID="lblSelectedText"
Runat="server" />
<br />
Selected Card Color:
<asp:Label
ID="lblSelectedColor"
Runat="server" />
</asp:Panel>
</div>
</form>
</body>
</html>
Обратите внимание, что страница теперь содержит элемент управления ColorPickerExtender, который отображается непосредственно под элементом управления txtCardColor TextBox. Элемент управления ColorPickerExtender расширяет элемент управления txtCardColor, чтобы он отображал диалоговое окно выбора цветов.
Использование кнопки для запуска диалогового окна выбора цветов
Расширитель ColorPicker поддерживает следующие свойства:
- PopupButtonId — идентификатор кнопки на странице, которая приводит к отображению диалогового окна выбора цвета.
- PopupPosition — позиция, относительно целевого элемента управления, диалогового окна выбора цвета. Возможные значения: Absolute, Center, BottomLeft, BottomRight, TopLeft, TopRight, Right и Left (по умолчанию — BottomLeft).
- SampleControlId — идентификатор элемента управления, отображающего выбранный цвет.
- SelectedColor — начальный цвет, выбранный ColorPicker.
Эти свойства можно использовать для настройки отображения диалогового окна выбора цвета и отображения выбранного цвета. На странице в списке 3 показано, как использовать несколько этих свойств.
Листинг 3 - CreateCardButton.aspx
<%@ Page Language="C#" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e)
{
// Show the panel
pnlResults.Visible = true;
// Show the selected values
lblSelectedText.Text = txtCardText.Text;
lblSelectedColor.Text = txtCardColor.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<h1>Create a Business Card</h1>
<asp:Label
ID="lblCardText"
Text="Card Text"
AssociatedControlID="txtCardText"
runat="server" />
<br />
<asp:TextBox
ID="txtCardText"
Runat="server" />
<br /><br />
<asp:Label
ID="lblCardColor"
Text="Card Color"
AssociatedControlID="txtCardColor"
runat="server" />
<br />
<asp:TextBox
ID="txtCardColor"
AutoCompleteType="None"
Runat="server" />
<asp:Button
ID="btnPickColor"
Text="Pick Color"
Runat="server" />
<asp:Label
ID="lblSample"
Runat="Server"> Sample </asp:Label>
<cc1:ColorPickerExtender
ID="txtCardColor_ColorPickerExtender"
TargetControlID="txtCardColor"
PopupButtonID="btnPickColor"
PopupPosition="TopRight"
SampleControlID="lblSample"
Enabled="True"
runat="server">
</cc1:ColorPickerExtender>
<br /><br />
<asp:Button
ID="btnSubmit"
Text="Submit"
Runat="server" OnClick="btnSubmit_Click" />
<asp:Panel ID="pnlResults" Visible="false" runat="server">
<h2>Your Selection</h2>
Selected Card Text:
<asp:Label
ID="lblSelectedText"
Runat="server" />
<br />
Selected Card Color:
<asp:Label
ID="lblSelectedColor"
Runat="server" />
</asp:Panel>
</div>
</form>
</body>
</html>
Страница в списке 3 содержит кнопку "Цвет выбора" (см. рис. 5). При нажатии этой кнопки диалоговое окно выбора цветов появится над текстовым полем. Если выбрать цвет из диалогового окна, выбранный цвет отображается как цвет фона элемента управления lblSample Label.
Свойство ColorPicker PopupButtonID используется для связывания кнопки "Цвет выбора" с расширением ColorPicker. При указании значения свойства PopupButtonID диалоговое окно выбора цветов больше не отображается, когда целевой элемент управления имеет фокус. Чтобы отобразить диалоговое окно, необходимо нажать кнопку.
Свойство SampleControlID используется для связывания элемента управления, отображающего выбранный цвет с ColorPicker. ColorPicker изменяет цвет фона этого элемента управления на выбранный в данный момент цвет.
Рис. 05. Отображение диалогового окна выбора цвета с помощью кнопки (нажмите, чтобы просмотреть изображение полного размера)
Сводка
В этом руководстве вы узнали, как использовать расширитель элемента управления ColorPicker для отображения диалогового окна выбора цвета всплывающего окна. Во-первых, мы рассмотрели, как отобразить диалоговое окно при перемещении фокуса в элемент управления TextBox. Затем вы узнали, как создать кнопку, отображающую диалоговое окно выбора цвета при нажатии кнопки.