Don't think you are, know you are

博客园 首页 新随笔 管理

 概念什么的没必要提了

假设一个页面需要无刷新取回服务器数据,当然我们要用到 XMLHttpRequest ,构建函数如下:

 

  <script type="text/javascript">
         var xmlhttp;
         function RetrieveData() {
             //实例化XMLHttpRequest对象
             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
             //找到名为“Text1”的文本框
             var name = document.getElementById("<%=TextBox1.ClientID%>");
             //利用Open方法向指定URL
             //查询字符串“name”将文本框中的数据传送到目标页面
             xmlhttp.open("Post", "DataHandler.aspx?requestString=" + name.value);
             //设置当服务器响应返回时用于处理响应的函数名
             xmlhttp.onreadystatechange = OnMessageBack;
             //送发请求
             xmlhttp.send(null);
         }


         function OnMessageBack() {
             //判断请求状态及HTTP状态是否都能满足条件
             if (xmlhttp.readystate == 4 && xmlhttp.status == 200) {
                 //将返回的文本打印到页面上
                 var data = xmlhttp.responseText.split('<!');
                 document.getElementById("<%=Label1.ClientID%>").innerHTML = data[0];   //xmlhttp.responseText;
             }
         }

    </script>

 

Html 控件如下:

 

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="Button1" type="button" value="button"  onclick="RetrieveData()" />
<asp:Label ID="Label1" runat="server" Text="Here is the value"></asp:Label> 

 

DataHandler.aspx 的后台代码如下

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (this.Request.QueryString["requestString"] != null)
                {
                    this.Response.Clear();
                    this.Response.Write("Hello:  " + this.Request.QueryString["requestString"].ToString());

       // 访问数据库或服务端组件或服务          

          }
                else
                {
                    this.Response.Clear();
                    this.Response.Write("Hello  no name");
                }
            }

        }

 

 

posted on 2010-06-24 17:04  炭炭  阅读(896)  评论(0编辑  收藏  举报