我想用TextChanged事件判断用户是否已经存在,但不想刷新整个页面,于是将一个textbox和一个label空间放在了updatepanel里面,想实现局部刷新,但问题是只能判断一次,也就是说焦点离开textbox后只处理一次TextChanged事件,以后再怎么改变textbox的值都不触发textchanged事件了,不进行判断了,即使用户存在,也不处理textchanged里的事件了,下面是一些关键代码:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<tr>
<td align="right" style="font-weight: 700">
用户名称<strong>:</strong>
</td>
<td>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="txtUserName" runat="server" Width="120px" AutoPostBack="True" OnTextChanged="txtUserName_TextChanged"></asp:TextBox>
<asp:Label ID="Label1" runat="server" ForeColor="Red"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
protected void txtUserName_TextChanged(object sender, EventArgs e)
{
Label1.Text = "";
bll.users b_user = new bll.users();
if (b_user.IsExists(txtUserName.Text))
{
Label1.Text = "用户已存在!"; }
if (txtUserName.Text == "")
{
Label1.Text = "用户名不能为空!";
}
}
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<tr>
<td align="right" style="font-weight: 700">
用户名称<strong>:</strong>
</td>
<td>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="txtUserName" runat="server" Width="120px" AutoPostBack="True" OnTextChanged="txtUserName_TextChanged"></asp:TextBox>
<asp:Label ID="Label1" runat="server" ForeColor="Red"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
protected void txtUserName_TextChanged(object sender, EventArgs e)
{
Label1.Text = "";
bll.users b_user = new bll.users();
if (b_user.IsExists(txtUserName.Text))
{
Label1.Text = "用户已存在!"; }
if (txtUserName.Text == "")
{
Label1.Text = "用户名不能为空!";
}
}
<asp:AsyncPostBackTrigger ControlID="templateName" EventName="TextChanged" />
</Triggers>是这样的吗?为什么还是不行呢,请楼主提示一下,非常感谢