当TextBox ReadOnly设置为" True&#34 ;?时,为什么ASP.NET Ajax ColorPickerExtender控件不返回任何内容?

时间:2016-05-03 09:31:04

标签: c# asp.net ajax

我在网页的TextBox上使用Ajax ColorPickerExtender控件。它在TextBox ReadOnly属性为" False"时工作正常,但当我将其更改为" true"时它什么都不返回。造成这种情况的原因是什么?

Html:

()

C#:

<asp:ScriptManager ID="ScriptManager1" 
        runat="server">
</asp:ScriptManager>
<asp:TextBox ID="TextBox3" 
    runat="server" 
    ClientIDMode="Static" 

    style="margin-top: 0px" 
    ReadOnly="True"></asp:TextBox>
<asp:Button
    ID="Button1"
    runat="server"

    Text="Set Color" />
<cc1:ColorPickerExtender ID="TextBox3_ColorPickerExtender2" 
    runat="server" 
    BehaviorID="TextBox3_ColorPickerExtender2" 
    TargetControlID="TextBox3">
</cc1:ColorPickerExtender>
<p>
    <asp:Label ID="Label1" 
        runat="server" 
        Text="My Color"></asp:Label>
</p>

2 个答案:

答案 0 :(得分:1)

不是什么都不返回的颜色选择器,它是texbox。

对于任何标记为只读的文本框都会发生这种情况,并且它基本上是ASP.Net框架如何确保用户输入来自浏览器的readonly文本框值不会改变。

要解决此问题,请在PageLoad事件中使用以下代码将文本框设置为只读。

if (!IsPostBack)
    TextBox3.Attributes.Add("readonly","readonly");

答案 1 :(得分:0)

请使用此代码:

<script>
    function setColor() {
        var label = document.getElementById('Label1');
        var txtVal = document.getElementById('TextBox1').value;
        label.style.color = '#' + txtVal;
    }
</script>

<head></head>标记内添加以上代码,并在Form ..

中添加以下代码
 <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <asp:TextBox ID="TextBox1" ClientIDMode="Static" ReadOnly="true" runat="server"></asp:TextBox>
        <cc1:ColorPickerExtender runat="server" BehaviorID="TextBox1_ColorPickerExtender" PopupButtonID="imgButton" TargetControlID="TextBox1" ID="TextBox1_ColorPickerExtender"></cc1:ColorPickerExtender>
        <asp:ImageButton runat="server" ID="imgButton" ImageUrl="~/painter-palette.png" />
        <input type="button" value="Set Color" onclick="setColor();" />
        <asp:Label ID="Label1" runat="server" ClientIDMode="Static" Text="My Color"></asp:Label>

如果能解决您的问题,请将其标记为答案