gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:25:21 25 4
gpt4 key购买 nike

我在使用 AJAX 工具包 ColorPickerExtender 时遇到异常问题。 Javascript 代码工作正常,它将扩展文本框的背景颜色更改为选择的颜色,并将文本更改为选择的颜色代码,但是当我尝试从代码隐藏中获取该扩展文本框的文本时,它返回就像它返回初始文本值一样 javascript 没有改变它.由于同样的代码适用于我的其他应用程序,我怀疑问题是我将 ColorPickerExtender 放在 UpdatePanel 中,然后放在用户控件中。这是代码:

ColorPickerExtender 所在的用户控制代码:

    <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" />

页面代码(上层用户控件包裹在面板中,而不是更新面板):

            <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="PostNewThoughtButton1" PopupControlID="pnlThoghtPopup" BackgroundCssClass="modalBackground" DropShadow="false" />
...
<asp:Panel ID="pnlThoghtPopup" runat="server" Style="display:none;">
<asp:UpdatePanel ID="pnlUpdate" runat="server">
<ContentTemplate>
<My:NewThoughtPopup ID="NewThoughtPopup1" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>

所以当我尝试在代码隐藏中调用它时:

string color = ColorTextBox.Text;

color 始终返回初始值:0x000000 虽然从客户端来看一切似乎都很好 ColorTextBox 文本已更新并且颜色已更改,但在服务器端没有任何反应,我是否必须在尝试获取字符串颜色之前调用回发?注意:相同的代码在没有更新面板并且不在用户控件上使用时也能正常工作

最佳答案

我遇到了类似的问题 - 这是因为 TextBox 设置为 ReadOnly="True"
您可以在 TextBox 之外使用 HiddenField

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

在 javascript 中只需设置 HiddenField 的值

document.getElementById('<%=HiddenFieldColorText.ClientID %>').value = yourColorString;    


因为您在 Javascript 中设置了 HiddenField 的值,并且您希望在 PostPack 上再次使用该值,您需要在 Page_Load 上再次设置它

HiddenFieldColorText.Value = Request.Params[HiddenFieldColorText.UniqueID];

关于c# - ASP.NET AJAX ColorPickerExtender 客户端工作正常,代码隐藏颜色为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com