日期:2014-05-18  浏览次数:20443 次

熟悉js ajax的帮忙看下, 小白请教了,来者有分
伪代码:
服务器代码
C# code

    protected void Page_Load(object sender, EventArgs e)
    {
            AddMess();
    }

    public void AddMess()
    {
        if (Request.QueryString["name"] != null)
        {
            Response.Clear();
            Class1 class1 = new Class1(); 
            string name = Request.QueryString["name"].ToString();
            int score = int.Parse(Request.QueryString["score"].ToString());
            string ps = Request.QueryString["ps"].ToString();
            int result = class1.Add(name, score, ps);  //增加一条记录 
            if (result == 1)
            {
                Response.Write("111111111");
            }
            else
            {
                Response.Write("222222222");
            }
        }
    }



页面 js:
JScript code

   function GetXmlHttpRequest()
    {
        var http_request;
        if(window.XMLHttpRequest)
        {
           http_request=new XMLHttpRequest();
        }
        else if(window.ActiveXObject)
        {
           try
           {
              http_request=new ActiveXObject("Msxml.XMLHTTP");
           }
           catch(e)
           {
              http_request=new ActiveXObject("Microsoft.XMLHTTP");
           }
        }
        return http_request;
    }

    function Add()
    {
        var http_request=GetXmlHttpRequest();
        http_request.open("Get","Default2.aspx?name=222&&score=333&&ps=444",true);
        http_request.onreadystatechange=
        function statechange()
        {
            if(http_request.readystate==4)
            {
                if(http_request.status==200)
                {
                    alert(http_request.ResponseText);
                }
            }
        }
        http_request.send(null);
    }




页面按钮点击后onclick="Add();" 增加一条记录 ResponseText返回111111111 数据库插入成功 但是在点一次 还是弹出111111111 可是数据库却没有再次新增 这是什么原因
另外调用服务器端的函数必须写在Page_Load()里? 这块不是很清楚 如果页面很多地方通过异步调用服务器端函数 都写在Page_Load()里? 请求高手解答下,

------解决方案--------------------
其实不用这么麻烦,LZ可以学习一下AJAXPRO,很方便做到这个效果
------解决方案--------------------
这问题我也遇到过 
 你将name,score,ps的值换成别的 
 可能就行了 
具体啥原因 一直没搞明白 
学习。。
------解决方案--------------------
protected void Page_Load(object sender, EventArgs e)
{
//前面加一个
Response.Expires=-1;//清除一下缓存
AddMess();
}

------解决方案--------------------
我现在要么用ajaxpro 要么 jquery
不怎么写这个了
------解决方案--------------------
if(!IsPostback)
{
AddMess();
}

------解决方案--------------------
http://blog.sina.com.cn/s/blog_4a50d85b0100brg5.html
------解决方案--------------------
有的只要设置下属性就OK了
------解决方案--------------------
C# code

   protected void Page_Load(object sender, EventArgs e)
    {
       Response.Expires=-1;
       if(!IsPostback) 
       { 
            AddMess();
       }
    }

------解决方案--------------------
jquery 

几行代码而已!!
------解决方案--------------------