我正在使用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
事件将在任何后续的回发中触发(可能是由于单击按钮或文本框焦点更改)。所以你需要确定我的猜测是您可能正在遭受#2的困扰。您可以使用诸如Fiddler(或FireFox上的Firebug)之类的工具来检查当文本框失去焦点时浏览器是否正在触发AJAX(XHR)请求。
关于ASP.NET OnTextChanged无法从更新面板内部触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696904/