我在网页的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>
答案 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>
如果能解决您的问题,请将其标记为答案