Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Microsoft
ColorPicker adalah ASP.NET extender AJAX yang menyediakan fungsionalitas pemilihan warna sisi klien dengan UI dalam kontrol popup. Ini dapat dilampirkan ke kontrol ASP.NET TextBox apa pun. Itu.
Tujuan dari tutorial ini adalah untuk menjelaskan bagaimana Anda dapat menggunakan extender kontrol AJAX Control Toolkit ColorPicker. Extender kontrol ColorPicker menampilkan dialog popup yang memungkinkan Anda memilih warna. ColorPicker berguna setiap kali Anda ingin menyediakan antarmuka pengguna yang intuitif bagi pengguna untuk memilih warna.
Memperluas Kontrol Kotak Teks dengan Extender Kontrol ColorPicker
Bayangkan, misalnya, bahwa Anda ingin membuat situs web yang memungkinkan pengunjung untuk membuat kartu nama yang disesuaikan. Pengunjung dapat memasukkan teks untuk kartu nama dan memilih warna. Halaman ASP.NET di Daftar 1 berisi dua kontrol TextBox bernama txtCardText dan txtCardColor. Saat Anda mengirimkan formulir, nilai yang dipilih ditampilkan (lihat Gambar 1).
Gambar 01: Formulir sederhana untuk membuat kartu nama (Klik untuk melihat gambar ukuran penuh)
Daftar 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>
Formulir dalam Daftar 1 berfungsi, tetapi tidak memberikan pengalaman pengguna yang hebat. Pengguna harus mengetik warna ke dalam kotak teks. Jika pengguna menginginkan warna khusus - misalnya, hanya bayangan hijau kacang yang tepat - maka pengguna harus mencari tahu kode warna HTML tanpa bantuan.
Anda dapat menggunakan extender kontrol ColorPicker untuk menciptakan pengalaman pengguna yang lebih baik. ColorPicker menampilkan dialog warna saat Anda memindahkan fokus ke kontrol Kotak Teks (lihat Gambar 2).
Gambar 02: ColorPicker Control Extender (Klik untuk melihat gambar ukuran penuh)
Anda perlu menyelesaikan dua langkah untuk menggunakan extender kontrol ColorPicker dengan formulir di Daftar 1:
- Menambahkan kontrol ScriptManager ke halaman
- Menambahkan extender kontrol ColorPicker ke halaman
Sebelum dapat menggunakan ColorPicker, Anda harus menambahkan ScriptManager ke halaman Anda. Tempat yang baik untuk menambahkan ScriptManager tepat di bawah tag bentuk> sisi <server pembuka. Anda dapat menyeret ScriptManager ke halaman dari kotak alat (ScriptManager terletak di bawah tab Ekstensi AJAX). Atau, Anda dapat mengetikkan tag berikut ke dalam Tampilan Sumber di bawah tag formulir sisi server pembuka:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
Cara termampu untuk menambahkan extender kontrol ColorPicker ke halaman ada di Tampilan Desain. Jika Anda mengarahkan mouse ke atas txtCardColor TextBox, opsi tugas cerdas muncul memungkinkan Anda menambahkan extender (lihat Gambar 3). Jika Anda memilih opsi ini, Wizard Extender muncul (lihat Gambar 4).
Gambar 03: Menambahkan extender (Klik untuk melihat gambar ukuran penuh)
Gambar 04: Memilih extender kontrol dengan Wizard Extender (Klik untuk melihat gambar ukuran penuh)
Anda dapat memilih extender ColorPicker untuk memperluas txtCardColor TextBox dengan extender ColorPicker. Klik OK untuk menutup dialog.
Setelah Anda membuat perubahan ini, sumber untuk halaman terlihat seperti Daftar 2.
Daftar 2 - CreateCard.aspx (dengan 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>
Perhatikan bahwa halaman sekarang berisi kontrol ColorPickerExtender yang muncul tepat di bawah kontrol txtCardColor TextBox. Kontrol ColorPickerExtender memperluas kontrol txtCardColor sehingga menampilkan dialog pemilih warna.
Menggunakan Tombol untuk Meluncurkan Dialog Pemilih Warna
Extender ColorPicker mendukung properti berikut:
- PopupButtonId - ID tombol pada halaman yang menyebabkan dialog pemilih warna muncul.
- PopupPosition - Posisi, relatif terhadap kontrol target, dari dialog pemilih warna. Nilai yang mungkin adalah Absolut, Tengah, BottomLeft, BottomRight, TopLeft, TopRight, Kanan, dan Kiri (defaultnya adalah BottomLeft).
- SampleControlId - ID kontrol yang menampilkan warna yang dipilih.
- SelectedColor - Warna awal yang dipilih oleh ColorPicker.
Anda dapat menggunakan properti ini untuk menyesuaikan bagaimana dialog pemilih warna ditampilkan dan bagaimana warna yang dipilih ditampilkan. Halaman di Daftar 3 menggambarkan bagaimana Anda bisa menggunakan beberapa properti ini.
Daftar 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>
Halaman di Daftar 3 menyertakan tombol Pilih Warna (lihat Gambar 5). Saat Anda mengklik tombol ini, dialog pemilih warna muncul di atas Kotak Teks. Jika Anda memilih warna dari dialog, warna yang dipilih akan muncul sebagai warna latar belakang kontrol Label lblSample.
Properti ColorPicker PopupButtonID digunakan untuk mengaitkan tombol Pilih Warna dengan extender ColorPicker. Saat Anda menyediakan nilai untuk properti PopupButtonID, dialog pemilih warna tidak lagi muncul saat kontrol target memiliki fokus. Anda harus mengklik tombol untuk menampilkan dialog.
Properti SampleControlID digunakan untuk mengaitkan kontrol yang menampilkan warna yang dipilih dengan ColorPicker. ColorPicker mengubah warna latar belakang kontrol ini ke warna yang saat ini dipilih.
Gambar 05: Menampilkan dialog pemilih warna dengan tombol (Klik untuk melihat gambar ukuran penuh)
Ringkasan
Dalam tutorial ini, Anda mempelajari cara menggunakan extender kontrol ColorPicker untuk menampilkan dialog pemilih warna popup. Pertama, kami memeriksa bagaimana Anda dapat menampilkan dialog saat fokus dipindahkan ke kontrol TextBox. Selanjutnya, Anda mempelajari cara membuat tombol yang menampilkan dialog pemilih warna saat tombol diklik.