首页 新闻 会员 周边

偶遇到奇怪的问题了

0
悬赏园豆:5 [已解决问题] 解决于 2010-08-24 18:50

看下这句话为什么不执行后台的事件  Submit 

protected void Submit(object sender, EventArgs e)
        {
            //txt_pwd.Attributes.Add("onblur", "Test(this)");
            Response.Write("Test");
        }

 

<input id="btn_submit" type="button" value="button" onclick="if(!ajaxsend()){return false;}" runat="server" onserverclick="Submit" />

ajaxsend()  这个方法是前台的

 

var ajax = null;
function ajaxsend() {
ajax
= new ActiveXObject("Microsoft.XMLHTTP");
if (ajax != null) {
ajax.onreadystatechange
= Get_Value;
ajax.open(
"GET", "Test.aspx?id=" + escape(document.getElementById("txt_user").value), true);
ajax.send(
null);
}
}
function Get_Value() {
if (ajax.readyState == 4 && ajax.status == 200) {
document.getElementById(
"sp1").innerHTML = ajax.responseText;
}
}

Test.aspx页面如下:

 

protected string Id = string.Empty;

protected override void Render(HtmlTextWriter writer)
{
Id
= Request["id"] == null ? "" : Request["id"].ToString();
switch (Id)
{
case "1":
Get_Reg1(writer);
break;
case "2":
Get_Reg2(writer);
break;
}
}

void Get_Reg1(HtmlTextWriter writer)
{
string str = "True";
writer.Write(str);
}

 

like%'远远'%的主页 like%'远远'% | 小虾三级 | 园豆:635
提问于:2010-08-24 15:40
< >
分享
最佳答案
0

事件触发顺序搞错了,先执行onclick 然后才是onserverclick  你客户端代码onclick 中 retrun false,自然不会触发服务端代码 onserverclick

收获园豆:5
jeff-zheng | 菜鸟二级 |园豆:480 | 2010-08-24 16:31
onclick="if(!ajaxsend()){return false;}" 这句话返回的是false吗? ajaxsend()前面有个! 这个符号...
like%'远远'% | 园豆:635 (小虾三级) | 2010-08-24 16:44
你的ajaxsend() 方法 没有返回值 默认值为null ,!ajaxsend() 值永远为false 你在ajaxsend() 增加返回值 return true; Submit事件就执行了。
jeff-zheng | 园豆:480 (菜鸟二级) | 2010-08-24 17:11
果然如此...
like%'远远'% | 园豆:635 (小虾三级) | 2010-08-24 18:50
其他回答(2)
0

你的ajaxsend()为什么不返回一个bool值呢。


Astar | 园豆:40805 (高人七级) | 2010-08-24 15:55
0

我告诉你个方法,你下载一个 Fiddler ,打开它,然后点击的页面,看看你这个请求

ajax.open("GET", "Test.aspx?id="  到底执行了没有。

Launcher | 园豆:45045 (高人七级) | 2010-08-24 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册