当前位置:编程学习 > C#/ASP.NET >>

一个简单的ajax应用,请高手帮看下!

html代码如下:
<script type="text/javascript" language="javascript">
        var xmlhttprequest;

            //function checkuser(username)
            //{
            //        
            //    createXMLHTTP();
            //    var url="Default.aspx?name="+username+"&Event=check";
            //    xmlhttprequest.open("POST",url,true);
            //    xmlhttprequest.onreadystatechange=checkusername;
            //    xmlhttprequest.send(null);
            //}

        function createXMLHTTP()
        {
            if(window.XMLHttpRequest)
            {
                xmlhttprequest=new XMLHttpRequest();
            }
            else if(window.ActiveXObject)
            {
                try
                {
                    xmlhttprequest=new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e1)
                {            
                }
                try
                {
                    xmlhttprequest=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e2)
                {}
                if(!xmlhttprequest)
                {
                    window.alert("不能创建XMLHTTPRequest对象实例");
                    return false;
                }
            }
        }
                //function checkusername()
                //{
                //    if(xmlhttprequest.readyState==4)
                //    {
                //        if(xmlhttprequest.status==200)
                //        {
                //          if(xmlhttprequest.responseText=="true")
                //          {
                //            document.getElementById("TorF").src="image/true.gif";
                //            document.getElementById("TorF").visible=true;
                //                //让注册按钮失效
                //            document.getElementById("btnreg").disabled=false;
                //          }
                //        else
                //          {
                //            document.getElementById("TorF").src="image/false.gif"; 
                //            document.getElementById("TorF").visible=true;
                //            document.getElementById("btnreg").disabled=true;   
                //          }
                //        }
                //    }
                //}
                //注册新用户
        function regUser()
        {
            createXMLHTTP();
            if(document.getElementById("username").value=="")
            {
                alert("对不起,用户名不为空");
                //document.getElementById("username").focus();也可以获得焦点
                //this.document.form1.username.focus();
                return false;
            }
            if(document.getElementById("userpass").value=="")
            {
                alert("对不起,密码不为空");
                return false;
            }
            var url="Handler.ashx?Name="+document.getElementById("username").value+"&Pwd="+document.getElementById("userpass").value;
            
            xmlhttprequest.open("GET",url,true);
            xmlhttprequest.onreadystatechange=regUserInfo;
            xmlhttprequest.send(null);
        }

        //注册用户回调函数
        function regUserInfo()
        {
            if(xmlhttprequest.readyState==4)//判断对象状态
            {
                if(xmlhttprequest.status==200)//信息成功返回,开始处理信息
                {
                    
//                    if(xmlhttprequest.responseText=="true")//获取的Response.Write("true");里面的文本
//                    {
                        alert("恭喜,登录成功!");
                        document.getElementById("username").value="";
                        document.getElementById("userpass").value="";              
//                    }
//                    else
//                    {
//                        alert("对不起,登录失败!");
//                        document.getElementById("username").value="";
//                        document.getElementById("userpass").value="";                         
//                    }
                }
            }
        }

        //将用户名和密码文本框值设为空
        function reset()
        {
            //document.getElementById("username").focus();
            document.form1.username.focus();
            document.getElementById("username").value="";
            this.document.getElementById("userpass").value=""; 
        }

</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <%--<asp:TreeView ID="TreeView1" runat="server" ForeColor="#404040" LineImagesFolder="~/TreeLineImages"
            ShowLines="True">
            <Nodes>
                <asp:TreeNode Text="新建节点" Value="新建节点">
                    <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="新建节点" Value="新建节点">
                    <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                </asp:TreeNode>
            </Nodes>
        </asp:TreeView>--%>
        <input id="username" type="text" />
        <input id="userpass" type="text" /><br />
        <input id="btnOk" type="button" value="确定" name="btnOk" onclick="regUser()" />
        <input id="upbtn" type="button" value="取消" name="upbtn" onclick="reset()" />
    </div>
    <div id="msg_display" style="background:yellow; font-weight:bold;font-size:13px;"></div>
    </form>
</body>
</html>


Handle.ashx代码如下:
public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        //context.Response.Write("Hello World");
        int result = -1;
        SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["testConn"].ToString());
        string strSql = string.Format("select * from login where admin='{0}' and pwd='{1}'", context.Request.QueryString["Name"].ToString().Trim(), context.Request.QueryString["Pwd"].ToString().Trim());

        SqlCommand cmd = new SqlCommand(strSql, sqlConn);
        sqlConn.Open();
        result = cmd.ExecuteNonQuery();
        if (!result.Equals(-1))
        {
            context.Response.Write("true");
        }
        else
        {
            context.Response.Write("false");
        }
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }



运行后输入用户名密码后毫无反应,请高手赐教! --------------------编程问答-------------------- 为什么用这么原始的代码。。。
jQuery很容易就搞定了。 --------------------编程问答-------------------- UP --------------------编程问答-------------------- 首先在 function regUser() 
里面增加几句调试信息
alert("t1");//看是否进入函数
createXMLHTTP(); 
alert("t2");//httpxmlrequest是否创建成功
然后在Handle.ashx放入断点,看是否进入服务端。
一步一步调试一下。 --------------------编程问答-------------------- 真是简单! --------------------编程问答-------------------- 框架或组件做这个东西肯定是非常简单了,但是在真正大型项目开发中,就别相信什么框架或组件(第三方控件)之类的东西,那些东西全都不可靠,而且对于网站性能提高都没好处,举个最简单的例子,TreeView是VS2005下控件,但是你找个服务器放上去,说不定就不支持这个控件,真正靠得住的东西还是要程序员手写出来的东西,Ajax现在的控件虽然很多,但是一点问题都没有的还是不多,所以才想用基本的代码实现下,工作量虽然大了点,但是性能和稳定性都有保证!
--------------------编程问答--------------------
引用 5 楼 liuying6866 的回复:
框架或组件做这个东西肯定是非常简单了,但是在真正大型项目开发中,就别相信什么框架或组件(第三方控件)之类的东西,那些东西全都不可靠,而且对于网站性能提高都没好处,举个最简单的例子,TreeView是VS2005下控件,但是你找个服务器放上去,说不定就不支持这个控件,真正靠得住的东西还是要程序员手写出来的东西,Ajax现在的控件虽然很多,但是一点问题都没有的还是不多,所以才想用基本的代码实现下,工作量虽然大了点,但是性能和稳定性都有保证!

谬误。 --------------------编程问答--------------------
引用 5 楼 liuying6866 的回复:
框架或组件做这个东西肯定是非常简单了,但是在真正大型项目开发中,就别相信什么框架或组件(第三方控件)之类的东西,那些东西全都不可靠,而且对于网站性能提高都没好处,举个最简单的例子,TreeView是VS2005下控件,但是你找个服务器放上去,说不定就不支持这个控件,真正靠得住的东西还是要程序员手写出来的东西,Ajax现在的控件虽然很多,但是一点问题都没有的还是不多,所以才想用基本的代码实现下,工作量虽然大了点,但是性能和稳定性都有保证!


那就别谈 封装 了 --------------------编程问答--------------------
引用 5 楼 liuying6866 的回复:
框架或组件做这个东西肯定是非常简单了,但是在真正大型项目开发中,就别相信什么框架或组件(第三方控件)之类的东西,那些东西全都不可靠,而且对于网站性能提高都没好处,举个最简单的例子,TreeView是VS2005下控件,但是你找个服务器放上去,说不定就不支持这个控件,真正靠得住的东西还是要程序员手写出来的东西,Ajax现在的控件虽然很多,但是一点问题都没有的还是不多,所以才想用基本的代码实现下,工作量虽然大了点,但是性能和稳定性都有保证!


那所有的应用全手写好了。--|
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,