当前位置: 代码迷 >> VB Dotnet >> 服务器文本框控件 的 OnTextChanged 事件被触发2次,求解决议案
  详细解决方案

服务器文本框控件 的 OnTextChanged 事件被触发2次,求解决议案

热度:123   发布时间:2016-04-25 02:13:16.0
服务器文本框控件 的 OnTextChanged 事件被触发2次,求解决方案
目标
用户输入用户名或编号的部分,回车后,到服务器端进行数据库匹配,如结果唯一,那么返回完整用户名和编号,并存入session
否则,弹出模式窗体 用户列表供用户在相似结果中选择
问题 :输入部分内容并回车后,跟踪发现 OnTextChanged 事件被执行了2次,求解惑及解决方案

login1.aspx
----------------------------------------------
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Login1.aspx.vb" Inherits="Login1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
                                    <asp:Label ID="Label1" runat="server" Text="用&nbsp;&nbsp;户&nbsp;&nbsp;名:"></asp:Label>

                                &nbsp;<asp:TextBox ID="Txt_PerName" runat="server" Width="144px" autopostback="true"   OnTextChanged ="Txt_PerName_TextChanged" ></asp:TextBox>

    </div>
    </form>
</body>
</html>
----------------------------------------------
login1.aspx.vb
--------------------------------------------------------------

Partial Class Login1
    Inherits System.Web.UI.Page

    Protected Sub Txt_PerName_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Txt_PerName.TextChanged
        '依据输入内容在用户编号和名称中查找,如唯一,那么刷新帐套,否则跳转查找页面
        Dim A As String
        A = 2
        If A = "1" Then
            MsgBox("人员找到")
        Else
            MsgBox("人员未找到")
        End If
    End Sub

End Class

-------------------------------------------------------------------------

------解决方案--------------------
.aspx 中的 OnTextChanged="Txt_PerName_TextChanged" 去掉!
.vb 中有了 Handles Txt_PerName.TextChanged,ASP.Net 会自动添加 OnTextChanged 的处理。