Bien que je ne l'ai pas caché, j'ai trouvé un autre moyen d'obtenir ce que je voulais. Lorsque la couleur est sélectionnée, j'appelle une fonction javascript qui récupère le code couleur de la zone de texte et le stocke dans un champ masqué, puis efface le texte de la zone de texte, puis définit la couleur d'arrière-plan de la zone de texte.
Voici le code ASPX:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="color.aspx.cs" Inherits="color" %>
<%@ 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">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function ColorSelectionChanged() {
var txtColorPickerSelector = '#' + txtColorPickerID;
var ColorCodeSelector = '#' + ColorCodeID;
var colorCode = '#' + $(txtColorPickerSelector).val();
$(txtColorPickerSelector).val('').css('background-color', colorCode);
$(ColorCodeSelector).val(colorCode);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:HiddenField ID="ColorCode" runat="server" />
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:TextBox ID="txtColorPicker" runat="server" Width="2em"></asp:TextBox>
<cc1:ColorPickerExtender ID="txtColor_ColorPickerExtender" runat="server"
TargetControlID="txtColorPicker"
OnClientColorSelectionChanged="ColorSelectionChanged" />
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" />
<asp:Label ID="lblColorCode" runat="server"></asp:Label>
</form>
</body>
</html>
<script type="text/javascript">
var txtColorPickerID = '<%=txtColorPicker.ClientID %>';
var ColorCodeID = '<%=ColorCode.ClientID %>';
</script>
Et le code derrière:
using System;
using System.Drawing;
public partial class color : System.Web.UI.Page
{
protected void btnSubmit_Click(object sender, EventArgs e)
{
lblColorCode.Text = ColorCode.Value;
txtColorPicker.BackColor = ColorTranslator.FromHtml(ColorCode.Value);
}
}
Je viens attribuer le code à l'étiquette pour prouver que le code couleur est soumis. Désolé pour le formatage aspx. Testé et fonctionnant dans Chrome, IE 6, IE 7, Firefox 3, Opera 9 et Safari 4.
Cette solution fonctionne, mais je fais face à un problème. Dans la phase initiale, il montre le code Hexa. Aidez-moi s'il vous plaît à résoudre ceci. –