XML ajax在c#的web项目中是否很常用? 一般在什么情况用?要怎么学呢?

解决方案 »

  1.   

    楼主是指XML WEB Services +  AJAX的结合?
    AJAX的话微软有写过一套控件,就是updatepanel了,使用起来也很简单,只要一拉。
    具体百度asp.net ajax
      

  2.   

    XML ajax在c#的web项目中是否很常用?
    现在的项目中经常用到,当然也要根据项目需求
     一般在什么情况用?
    web service实现分布式系统的选择。而ajax实现数据无刷新效果,
    仍然看项目需要

    要怎么学呢?

    下载ajax相关组件,按照提供的范例程序,学习。
      

  3.   

    ajax主要是可以提供友好的用户体验
    我在工作中经常用的两种方法是
    1、前台:XMLHttpRequest对象 + 后台:ashx文件;
    2、ICallbackEventHandler接口(vs2005后才有的)
      

  4.   

    我用 纯 AJAX ,也用 prototype,xml ,json ,jquery asp.net ajax 原理都一样。==客户端==
    var req=null;
          
          function processReqChange2()
          {            
               if(req.readyState==4 && req.status==200)
               {                       
                     var dtable=document.getElementById('tshow');         
                   
                     var nl = req.responseXML.getElementsByTagName( 'book' );               
                     for( var i = 0; i < nl.length; i++ )
                     {        
                        var nli=nl.item(i);                     
                          var eauthor=nli.getElementsByTagName('author');  
                          var author=eauthor.item(0).firstChild.nodeValue;
                          var etitle=nli.getElementsByTagName('title');                
                          var title=etitle.item(0).firstChild.nodeValue;                  
                       
                          var elTr = dtable.insertRow( -1 );
                          var elAuthorTd = elTr.insertCell( -1 );
                          elAuthorTd.innerHTML = author;
                          var elTitleTd = elTr.insertCell( -1 );
                          elTitleTd.innerHTML = title;                                
                    }                    
               }   
          }
          function processReqChange3()
          {            
               if(req.readyState==4 && req.status==200)
               {
                  var objdiv=document.getElementById('result');                           
                  var dtable=document.getElementById('tshow');    
                  
                        
                  var books = eval(req.responseText);
                  for(var b in books)
                  {
                        var elTr = dtable.insertRow( -1 );                    var elAuthorTd = elTr.insertCell( -1 );
                        elAuthorTd.innerHTML = books[b].author;                    var elTitleTd = elTr.insertCell( -1 );
                        elTitleTd.innerHTML = books[b].title;
                  }    
                                          
               } 
          }     
          
          function loadUrl(url,f)
          {
               if(window.XMLHttpRequest)
               {
                    try
                    {
                       req=new XMLHttpRequest();                   
                    }
                    catch(e)
                    {
                       req=false;
                    }
               }
               else if(window.ActiveXObject)
               {
                    try
                    {
                        req=new ActiveXObject('Msxml2.XMLHTTP');
                    }
                    catch(e)
                    {
                        try
                        {
                            req=new ActiveXObject('Microsoft.XMLHTTP');
                        }
                        catch(e)
                        {
                            req=false;
                        }
                    }
               }
               
               if(req)
               {   
                   if(f=='2')
                   {
                        req.onreadystatechange=processReqChange2; 
                   }
                   else if(f=='3')
                   {
                        req.onreadystatechange=processReqChange3; 
                   }                     
                   req.open('GET',url,true);
                   req.send('');
               }
          }     
          function ajaxcallxml()
          {   
              var url="ajaxserver.aspx?id=2";         
              loadUrl(url,2);
          }
          function ajaxcalljs()
          {
              var url="ajaxserver.aspx?id=3" ;
              loadUrl(url,3);
          }     
          function ajaxcallsqlxml()
          {
             var url="ajaxserver.aspx?id=5";      
             loadUrl(url,2);
          }   
          function ajaxcalljsjson()
          {
              var url="ajaxserver.aspx?id=6" ;
              loadUrl(url,3);
          }
    ===服务器===
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {        
            if (Request.Form["aa"]!= null)
            {
                Response.Write("【中文】欢迎光临:<span style='color:red'>天山寒雪<span>");
                Response.End();
            }
            if (Request.QueryString["id"] != null)
            {
                string s = Request.QueryString["id"].ToString();
                int f = Int32.Parse(Request.QueryString["id"].ToString());        
                if (f == 2)
                {  Response.ContentType = "text/xml";
                    string xmlstr = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"+
                        "<中文> " +
                              "<book>"+
                                "<author>天山寒雪QQ'QQ\"MSN“Email</author>"+
                                "<title><![CDATA[757015000<200]]></title>" +
                              "</book>"+
                              "<book>"+
                                "<author><![CDATA[天山寒雪MSN&lt;QQ]]></author>" +
                                "<title>[email protected]>520</title>"+
                              "</book>"+
                              "<book>"+
                               " <author><![CDATA[777&lt;E88]]></author>" +
                               " <title>[email protected]</title>"+
                            "</book>"+
                           "</中文>"; 
                    Response.Write(xmlstr);
                }
                else if (f == 3)
                {                
                    string jsstr = "["+
                        "{ author: '天山\\'寒雪[1]\"E520', title: '互联网' },"+
                        "{ author: '天山寒雪[2]&lt;E520', title: '软件开发' },"+
                        "{ author: '天山寒雪[3]>E', title: '音乐' }"+
                        "]";
                    Response.Write(jsstr);
                }
                else if (f == 4)
                {
                    XmlDocument xd = new XmlDocument();
                    string xmlstr = "<中文> " +
                              "<book>" +
                                "<one>天山寒雪QQ</one>" +
                                "<two>天山寒雪MSN</two>" +
                              "</book>" +                          
                           "</中文>";                xd.LoadXml(xmlstr);
                    Response.ContentType = "text/xml";
                    Response.Write(xd.InnerXml); 
                }
                else if (f == 5)
                {
                    string connstr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;   
                    string sql = "select b,c from test2";                
                    Response.ContentType = "text/xml";
                    string xmlstr = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><中文>";              
                
                    using (SqlDataReader dr = SqlHelper.ExecuteReader(connstr, CommandType.Text, sql))
                    {
                        while(dr.Read())
                        {
                            xmlstr += "<book><author>" + dr.GetInt32(0) + "</author><title><![CDATA[" + dr.GetString(1) + "]]></title></book>";
                        } 
                    }
                    xmlstr += "</中文>";
                    Response.Write(xmlstr);
                }
                else if (f == 6)
                {
                    string connstr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
                    string sql = "select b,c from test2";
                    string xmlstr = "[";
                    using (SqlDataReader dr = SqlHelper.ExecuteReader(connstr, CommandType.Text, sql))
                    {
                        while (dr.Read())
                        {
                            xmlstr += "{author:'" + dr.GetInt32(0) + "',title:'" + dr.GetString(1).Replace("'","&#39;")+ "'},";
                        }
                    }               
                    xmlstr =xmlstr.Remove(xmlstr.Length -1); 
                    xmlstr += "]";                 
                    Response.Write(xmlstr);             
                }
                else
                {
                    Response.Write("无任何数据...");
                }
                Response.End();
            }
        }
    </script>