今天我太郁闷了,搞不定xmlhttp无刷新之获取数据库数据我的问题是这样的:我打算使用xmlhttp无刷新技术,将数据库里面的三个字段的数据,显示到客户端的一个DIv里面;以前有一位大侠曾经给我一个实例,我会了,能运行了,但是,现在,将那实例搬到这个页面,居然不成功,我就纳闷了,所以才再次请教各位高手!我的环境是:vs2005+sql2000+c#我所使用的页面是:①显示数据库页面aspx②JS页面③后台程序页面ashx希望高手教教我,如何利用这三个页面进行无刷新,将数据库两个字段的内容,显示到aspx页面中的某个DIV里面太谢谢了!在线等待…

解决方案 »

  1.   

    我不使用任何框架,直接使用js异步请求服务器端,在服务器端我不使用ajax框架的!
      

  2.   

    http://www.cnblogs.com/torome/articles/343573.html
      

  3.   

    上面的链接地址只是获取源代码啊,我需要的是获取数据库字段数据的代码!ASHX这个文件的代码如何写?js文件又如何写?aspx页面中的div又如何弄?我需要这些,谢谢各位!同时谢谢上面的大侠,给予关注!
      

  4.   

    var XmlHttp=new ActiveXObject("Microsoft.XMLhttp");

    function sendAJAX()
    {
    XmlHttp.Open("POST","???.ashx",true);
    XmlHttp.send(null);
    XmlHttp.onreadystatechange=ServerProcess;
    }

    function ServerProcess()
    {
    if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete')
    {
    document.getElementById('???').innerHTML =XmlHttp.responsetext;
    }
    }大致上这样吧?
      

  5.   

    对,大致是这样的,这个文件看得懂,但是这只是JS文件啊ASHX这个文件如何写代码呢还有,传回来的数据,又如何显示到DIV中?谢谢了,又多一位大哥了!
      

  6.   

    详细怎么写我不太清楚,因为我要用的话也是用框架的。大致思想是这样的:ashx接受你传过去的参数,然后查询数据库,得到相应值,用一个类把值封装一下,JSON序列化返回,客户端接收返回的对象,再编辑DIV的HTML属性即可。
      

  7.   

    服务端可以这样往回传:
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    string jsonEmp = serializer.Serialize(theobject);
    context.Response.Write(jsonEmp);
    至于客户端如何反序列化得到这个对象嘛,那我就无能为力了因为我一般是用.net的AJAX框架的,有一个getobject的方法很方便。
      

  8.   

    能从数组之类的吗,我一不会封装成为XML文件也不会其它的,就想看看别人的类似代码,好好学习!
      

  9.   

    后台获取数据:
      protected void Page_Load(object sender, EventArgs e)
        {
            string searchCondition = (Request.QueryString["key"]==null)?"".Request.QueryString["key"].ToString();
            DataTable dt=GetDataTable(searchCondition);
            string response=string.Empty;
            for(int i=0;i<dt.Rows.Count;i++)
            {
             response+=dt.Rows[i][0].ToString()+","+dt.Rows[i][1].ToString()+","+dt.Rows[i][2].ToString()+";";
            }
            if(response.EndsWith(";"))
            {
             response=response.Substring(0,response.Length-1);
            }
            Response.Write(response);
            Response.End();
        }    private string connString = "数据库连接字符串";
        private DataTable GetDataTable(string searchCondition)
        {
            SqlConnection conn = new SqlConnection(connString);
            string query = string.Format(@"select id,name,address from table1 where id='{0}'",searchCondition);
            SqlCommand cmd = new SqlCommand(query, conn);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            try
            {
                conn.Open();
                adapter.Fill(dt);
                return dt;
            }
            catch
            {
                throw;
            }
            finally
            {
                cmd.Dispose();
                conn.Close();
            }
        }
      

  10.   

    假设你的key是传入的查询条件..
      

  11.   

    没事帮你前台代码也写了吧
     function ServerProcess() 

    if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete') 

     var response=XmlHttp.responseText;
     if(response!="")
     {
       var array=response.split(";");
       for(var i=0;i<array.length;i++)
       {
        var id=array[i].split(",")[0];
        var name=array[i].split(",")[1];
        var address=array[i].split(",")[2];
        //得到数据
        alert(id+name+address);
        //下面不用说了吧
       }
     }