rt

解决方案 »

  1.   

    还是贴出代码吧!
    function fun3()
        { 
           debugger;  
           if(document.getElementById("txtusername").value=="") 
           {
             alert("请输入用户名!");
             document.getElementById("txtusername").focus();
             return false;
           }
           if(document.getElementById("txtpassword").value=="")
           {
             alert("请输入密码!");
             document.getElementById("txtpassword").focus();
             return false;
           }
           __doPostBack('btnlogin','');
           
           if(document.getElementById("hdnStatus").value=="error")
           { 
             alert("用户名/密码不正确,请重新输入!");
             return false;
           }
           parentDialog.close();
        }   ps:__doPostBack('btnlogin','');是调用按钮的事件,事件里验证用户名和密码是否匹配,不匹配则在隐藏域中document.getElementById("hdnStatus")赋值“error”,js根据这个判断是否执行 parentDialog.close();
      

  2.   

    首先要说一个知识,不要手敲__doPostback代码,应该使用asp.net自动生成。另外回答你的问题。其实这可以很容易,看看asp.net在客户端生成的 _doPostback 函数代码,它是调用 submit的。如果你学过html/javascript,就可以知道submit的意思了。它就是提交当前页面,不会再执行之后的脚本代码了。所以结论是:没有返回值。
      

  3.   

    如果你根本不想提交页面,那么选择客户端的ajax开发吧,不要使用__doPpoatback。如果你想提交页面,那么可以是asp.net ajax的UpdatePanel来开发,你的所有脚本程序都多余,可以用c#来写,然后调用
       alert("用户名/密码不正确,请重新输入!");的部分使用ScriptManager.RegisterStartupScript方法来输出。你的parentdialog不清不楚地使用全局变量,是一种不好的设计。不过这就不提了。
      

  4.   

    我已经通过ajaxpro.2.dll解决了上面的问题了,不过新的问题又来了。
    母板页前台js调用后台的一个方法,也是通过ajaxpro的方式,可是后台方法中获取Session会报错,你知道是怎么回事吗?谢谢!
      

  5.   

    你应该先了解asp.net的生命周期。在ajaxpro.dll用session可以参考http://www.cnblogs.com/zhuawang/archive/2007/05/23/756463.html