Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UpdatePanel中ASP文本框上的AutoPostBack不工作_Javascript_C#_Asp.net_Ajax - Fatal编程技术网

Javascript UpdatePanel中ASP文本框上的AutoPostBack不工作

Javascript UpdatePanel中ASP文本框上的AutoPostBack不工作,javascript,c#,asp.net,ajax,Javascript,C#,Asp.net,Ajax,我有一个文本框控件,该控件在设置背景色的窗体上具有ColorPickerXtender。当用户更改颜色时,我希望发生两件事: 控件的颜色将更改 我得到一个immediate AJAX事件,这样我就可以在页面的其他部分进行更改 颜色更改与onColorChanged()JavaScript配合良好。我的事件处理程序在完全回发和从其他控件生成的部分/AJAX回发期间也会触发。但是,它本身并不生成即时回发 以下是.aspx文件的相关行: <%@ Page Title="" Language=

我有一个文本框控件,该控件在设置背景色的窗体上具有ColorPickerXtender。当用户更改颜色时,我希望发生两件事:

  • 控件的颜色将更改
  • 我得到一个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();