ASP.NET OnTextChanged无法从更新面板内部触发

标签 asp.net updatepanel textchanged

我正在使用ASP.NET更新面板,使用文本框上的TextChanged检索用户信息,这是我的代码:

<asp:UpdatePanel runat="server" ID="up1" ChildrenAsTriggers="true">
<ContentTemplate>
    <asp:TextBox runat="server" ID="loginEmail" Text="Email" 
        CssClass="textBoxes" OnTextChanged="userInfo" AutoPostBack="true"></asp:TextBox>
</ContentTemplate>
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="loginEmail" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>

以及后面的代码:
string url, emailInfo;
emailInfo = loginEmail.Text;
url = Membership.GetUserNameByEmail(emailInfo);

emailText.InnerText = "Email: " + emailInfo;
urlText.InnerText = "Webiste: http://www.Elwazefa.com/User/" + url ; 

,代码不会在textchanged 上触发,但可以,
在ButtonClick或PageLoad上。

问题是什么?

使用ASP.NET 4.0

最佳答案

<asp:TextBox AutoPostBack="true" OnTextChanged="thingId_TextChanged" ID="thingId" runat="server"></asp:TextBox>

当文本框失去焦点时,文本框上的AutoPostBack将触发回发。 TextChanged事件将在任何后续的回发中触发(可能是由于单击按钮或文本框焦点更改)。所以你需要确定
  • 更改文本后,您将移出文本框
  • 所做的任何更改都属于update-panel(可以是其他更新面板)的一部分。如果没有任何更新面板的一部分,那么这些更改将不会反射(reflect)在客户端上。

  • 我的猜测是您可能正在遭受#2的困扰。您可以使用诸如Fiddler(或FireFox上的Firebug)之类的工具来检查当文本框失去焦点时浏览器是否正在触发AJAX(XHR)请求。

    关于ASP.NET OnTextChanged无法从更新面板内部触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696904/

    相关文章:

    c# - 为什么获取上传文件的 FileByte 会破坏 StreamReader?

    javascript - 如何配置 UpdatePanel,使其首次渲染为空,并在页面渲染刷新后渲染并异步获取数据

    c# - 如何仅在用户停止输入时处理 TextChanged 事件?

    javascript - Quill JS - 检查表单提交上的文本是否更改

    c# - ASP.Net Core Sql session 持久化

    c# - 覆盖 ASP.NET MVC 事件样式表包

    asp.net - Fck 编辑器 - 更新面板

    html - 在链接的鼠标悬停时更改文本

    c# - 如何将 UserControl.ascx 的代码隐藏类放入另一个库中

    c# - 从更新面板写入文本框