C# ASP.NET AJAX ColorPickerXtender客户端工作正常,代码隐藏颜色为空

C# ASP.NET AJAX ColorPickerXtender客户端工作正常,代码隐藏颜色为空,c#,javascript,asp.net,ajaxcontroltoolkit,color-picker,C#,Javascript,Asp.net,Ajaxcontroltoolkit,Color Picker,我在使用AJAX工具包ColorPickerXtender时遇到了不同寻常的问题。Javascript代码运行良好,它将扩展文本框的背景颜色更改为拾取的颜色,并将文本更改为拾取的颜色代码,但当我尝试从代码中获取扩展文本框的文本时,它返回的值与Javascript返回的初始文本值相同,但Javascript并没有更改它。由于这段代码也适用于我的其他应用程序,我怀疑问题在于我将ColorPickerXtender放在UpdatePanel中,然后放在用户控件中。下面是代码: ColorPickerX

我在使用AJAX工具包ColorPickerXtender时遇到了不同寻常的问题。Javascript代码运行良好,它将扩展文本框的背景颜色更改为拾取的颜色,并将文本更改为拾取的颜色代码,但当我尝试从代码中获取扩展文本框的文本时,它返回的值与Javascript返回的初始文本值相同,但Javascript并没有更改它。由于这段代码也适用于我的其他应用程序,我怀疑问题在于我将ColorPickerXtender放在UpdatePanel中,然后放在用户控件中。下面是代码:

ColorPickerXtender所在的用户控制代码:

    <script language="javascript" type="text/javascript">
        function colorChanged(sender) {
            sender.get_element().style.backgroundColor = "#" + sender.get_selectedColor();
            sender.get_element().style.color = "#" + sender.get_selectedColor();
            sender.get_element().value = "0x" + sender.get_selectedColor();     
        }          
    </script>
...
...
<asp:TextBox ID="ColorTextBox" runat="server" ReadOnly="True" BackColor="Black" Text="" >0x000000</asp:TextBox>
                <asp:ColorPickerExtender ID="ColorTextBox_ColorPickerExtender" runat="server" Enabled="True" TargetControlID="ColorTextBox" OnClientColorSelectionChanged="colorChanged" PopupButtonID="PickColorButton">
                </asp:ColorPickerExtender>
                <asp:Button ID="PickColorButton" runat="server" Text="Pick Color" />

函数颜色已更改(发送方){
sender.get_元素().style.backgroundColor=“#”+sender.get_selectedColor();
sender.get_元素().style.color=“#”+sender.get_selectedColor();
sender.get_元素().value=“0x”+sender.get_selectedColor();
}          
...
...
0x000000
页面代码(上层用户控件包装在面板中,而不是更新面板):


...
因此,当我尝试在codebehind中调用此函数时:

字符串颜色=ColorTextBox.Text


color始终返回初始值:0x000000 Alt如果客户端的COLORTEXBOX文本看起来一切正常,则文本会更新并且颜色会更改,服务器端不会发生任何事情,在尝试获取字符串颜色之前是否需要回拨?注意:相同的代码在没有更新面板的情况下可以正常工作,并且在用户控件上不使用它时,我遇到了类似的问题-这是因为文本框设置为
ReadOnly=“True”

您还可以在文本框中使用HiddenField

<asp:HiddenField ID="HiddenFieldColorText" runat=server />

您是否尝试过在
UpdatePanel
上使用
FindControl
方法?谢谢您,我在发布后几分钟就想出了这个方法,但是知道这个隐藏字段很好!
<asp:HiddenField ID="HiddenFieldColorText" runat=server />
document.getElementById('<%=HiddenFieldColorText.ClientID %>').value = yourColorString;    
HiddenFieldColorText.Value = Request.Params[HiddenFieldColorText.UniqueID];