偶遇到奇怪的问题了

看下这句话为什么不执行后台的事件  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);
}

 

潇潇雨雨
浏览 321回答 2
2回答

慕婉清6462132

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

手掌心

我告诉你个方法,你下载一个 Fiddler ,打开它,然后点击的页面,看看你这个请求 ajax.open("GET", "Test.aspx?id="  到底执行了没有。
打开App,查看更多内容
随时随地看视频慕课网APP