AXzhz

专注ASP.NET!
        写软件的都是小姐,用软件的都是大爷。真TMD说的正确!
                嫖妓不给钱,反说被强奸!___中国共享软件的无奈!
读小学的时候大学不要钱,读大学了小学不要钱。
没工作时国家有分福利房,工作了后全是高价房!!

                        此软件能有效的破解QQ密码。(注:破解QQ密码是违法行为,请不要将软件用于违法行为)
“安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山。”1200多年前,诗人杜甫的理想,如今被一帮享受着电脑和互联网带来的快捷生活方式的受过高等教育的大孩子憧憬着。

导航

JavaScript初体验之冲出迷雾,我四个多小时的经验教训_AX

当JavaScript与ASP.NET结合,一些神奇的事件就发生了.

垃圾玩意,上传个图片都上传不了,........我用文字叙述吧!
【需求】
一个html文本框(客户端控件),一个Button(服务器端控件),引发的四个多小时的故事....
我要在按下Button时,判断文本框是否输入了内容,如果内容为空,执行一个提示必须输入内容的动作,否则,执行相应事件.

【过程】
既然我们知道了javascript的好,那当然要用一下它了,先写脚本
username:文本框的name
loginstatwrong:是一个要显示必须输入内容的<li></li>的 id,可以不用管它.
 function isUserNameNull()
 {
         if(document.all("username").value=="") 
        { 
                document.getElementById("loginstatwrong").innerHTML="用户名不能为空!"; 
                document.getElementById("loginstatwrong").style.display="block";
                 return false; 
         } 
        else 
        {
                 formGetPWD.action="getPWD.aspx?username="+document.all("username").value; 
                 formGetPWD.submit(); 
        }
}

【问题】
那么我现在要在Html里给Button加入 onclick=isUserNameNull()事件,
同时,又要为Button在后置代码CodeBehind里加上按钮单击事件,那么
无论文本框有无内容,CodeBehind里的事件都要执行.,,,
我怎么实现当文本框内无内容时,单击Button只在客户端用javascript处理,而当文本框不为空时,就把文本框的内容上传到服务器上进行处理呢?

【解决问题】
问同事,研究出两个可行方案:①把Button变为客户端控件,然后在Page_Load里通过传递来的参数进行判断处理.
有点复杂,但还是发挥了javascript的优势,不理想.
②把文本框转化为服务器端控件,加个不能为空的验证控件就OK了,靠,这个还用说,菜鸟都知道.

上网查资料:搜了老半天也没有这方面的东西,难道大家都没有这个问题?还是大家都不屑于这个问题
服务器控件的JavaScript事件处理与其后置代码的同时存在时的处理(这个是我想用的本文的另一个标题)
既然不行,还是问问我的Boss吧,真不是盖的,Boss就是boss,三言两语就把我打发了

Boss曰:在后置代码里让Button调用javascript不就行了.(后置代码里调用脚本?还可以这样??菜鸟又涨见识了)还热心的帮我写了这行代码:
this.Submit1.Attributes.Add("onclick","isUserNameNull();");

 注意:他回到自己座位上又补充了一句,你最好在后面加个return,我当时没有在意,哪里加return也不清楚,这样我又调试了一个多小时问题还是没有解决,后来突然我又想到了Boss说的return来,难道另有玄机?????
找来个猫:this.Button1.Attributes.Add("onclick","return confirm('你确定要删除吗?')");
画只虎:this.Submit1.Attributes.Add("onclick","return isUserNameNull();");
---------困扰心头多时的问题解决了!!!!!!!!!!!!

【总结】
①Boss的话每一句都是金玉良言,落掉一句都不行!!
晚了,明天待续....
②return 表示只有在执行formGetPWD.submit(); 后才与服务器进行交互,不写return的话,执行完脚本后肯定会与服务器交互.
③原来脚本还可以被后置代码调用.下面就是调用的isUserNameNull()方法.
Submit1.Attributes.Add("onclick","return isUserNameNull();");
④通过研究这个问题,我进行了多次跟踪,更进一步的清楚了网页调用的详细过程.
⑤要不择手段的请教别人,不要怕被笑话菜.



posted on 2006-08-25 22:54  斧头帮少帮主  阅读(5260)  评论(9编辑  收藏  举报

Google
 
站内搜索:        
园内搜索:
金山词霸: