Javascript UpdatePanel中ASP文本框上的AutoPostBack不工作
我有一个文本框控件,该控件在设置背景色的窗体上具有ColorPickerXtender。当用户更改颜色时,我希望发生两件事:Javascript UpdatePanel中ASP文本框上的AutoPostBack不工作,javascript,c#,asp.net,ajax,Javascript,C#,Asp.net,Ajax,我有一个文本框控件,该控件在设置背景色的窗体上具有ColorPickerXtender。当用户更改颜色时,我希望发生两件事: 控件的颜色将更改 我得到一个immediate AJAX事件,这样我就可以在页面的其他部分进行更改 颜色更改与onColorChanged()JavaScript配合良好。我的事件处理程序在完全回发和从其他控件生成的部分/AJAX回发期间也会触发。但是,它本身并不生成即时回发 以下是.aspx文件的相关行: <%@ Page Title="" Language=
- 控件的颜色将更改
- 我得到一个immediate AJAX事件,这样我就可以在页面的其他部分进行更改
onColorChanged()
JavaScript配合良好。我的事件处理程序在完全回发和从其他控件生成的部分/AJAX回发期间也会触发。但是,它本身并不生成即时回发
以下是.aspx文件的相关行:
<%@ Page Title="" Language="C#" MasterPageFile="~/FingerTipDisplay.Master" AutoEventWireup="true" CodeBehind="EditorLayoutv3.aspx.cs" Inherits="FingerTipDisplay.config.EditorLayoutv3" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxControlToolkit" %>
<asp:UpdatePanel ID="upGeneralLayoutData" runat="server">
<ContentTemplate>
<asp:Label runat="server" Text="Background color:" CssClass="ContentBodyText" ToolTip="Select the background color for this layout"></asp:Label>
<asp:TextBox ID="txtLayoutBackgroundColor" runat="server" ToolTip="Select the background color for this layout" CssClass="ColorPickerExtenderTextBox" Width="50" OnTextChanged="txtLayoutBackgroundColor_TextChanged" AutoPostBack="True"></asp:TextBox>
<ajaxControlToolkit:ColorPickerExtender TargetControlID="txtLayoutBackgroundColor" runat="server" OnClientColorSelectionChanged="onColorChanged" />
</ContentTemplate>
</asp:UpdatePanel>
下面是JavaScript:
onColorChanged = function (oSender) {
/// <summary>Callback to use for when a color picker extender changes colors. This
/// sets the foreground and background of the TextBox control to the selected color.
/// <param name='oSender' type='Object'>The control that changed</param>
oSender.get_element().style.color = "#" + oSender.get_selectedColor();
oSender.get_element().style.backgroundColor = "#" + oSender.get_selectedColor();
}
onColorChanged=函数(oSender){
///当颜色选择器扩展器更改颜色时使用的回调。此
///将TextBox控件的前景和背景设置为选定颜色。
///更改的控件
oSender.get_元素().style.color=“#”+oSender.get_selectedColor();
oSender.get_元素().style.backgroundColor=“#”+oSender.get_selectedColor();
}
解决了这个问题。事实证明,当ColorPickerXtender
更改相应TextBox
中的文本时,它根本不会引发TextChanged
事件。但是,手动键入文本框
会产生所需的效果,因此我只是将其添加到onColorChanged
处理程序中:
oSender.get_element().onchange();
现在它起作用了。谢谢大家的帮助。什么叫“立即回帖”?文本更改并退出(失去焦点)后,文本框触发回发。在textbox内键入时不会触发回发这是应该发生的事情吗:颜色选择器选择一种颜色,并将该颜色分配给textbox,这会触发服务器上的TextChanged事件(在updatepanel内或作为另一个updatepanel的触发器,因此它是异步的)?有趣。。问题标题声称UpdatePanel不工作。。。但它并不存在于您的代码中。点击此链接:并找到部分示例。。这将帮助你观察它应该是什么样子done@codefox,我的意思是失去注意力后。正如我在上一篇文章中提到的。。。正如choz刚才指出的,如果希望代码正常工作,就必须指定触发器
onColorChanged = function (oSender) {
/// <summary>Callback to use for when a color picker extender changes colors. This
/// sets the foreground and background of the TextBox control to the selected color.
/// <param name='oSender' type='Object'>The control that changed</param>
oSender.get_element().style.color = "#" + oSender.get_selectedColor();
oSender.get_element().style.backgroundColor = "#" + oSender.get_selectedColor();
}
oSender.get_element().onchange();