Dzwebs.Net

撰写电脑技术杂文十余年

asp.net无刷新技术参数传递及处理之简单实例

Admin | 2009-2-24 15:30:05 | 被阅次数 | 8247

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  在上一篇文章中,我们讲到了最为简单的无刷新技术的实例,本例,我们一起来学习一下使用无刷新技术将客户端的参数传到客户端,经过处理,将响应信息反馈给客户端。

  本例要实现的功能是:浏览页面有两个输入框、一个按钮当在第一个框输入内容时,点击按钮,将输入的信息传递到服务器,经过处理,回传到客户端并显示在第二个框中

  同样,本例,也需要三个文件,以下的这三个文件,其名称大家可以自行取名,只需将三文件放在同级同目录下面即可。

  ①ParameteAjax.aspx文件

  ②ParameteAjax.js文件

  ③ParameteAjax.ashx

  随便说一下,.ashx是服务器端文件,它相应于一个CS文件;

  下面我们对这三个文件作详细说明:

  ①ParameteAjax.aspx文件

  该文件内容非常简单,里面包含三个控件:

  <div>
        参数值一:<asp:TextBox ID="P1" runat="server"></asp:TextBox><br />
        参数值二:<asp:TextBox ID="P2" runat="server"></asp:TextBox><br />
        <input id="Button1" type="button" value="button" onclick="CallServer()"/></div>

  onclick="CallServer()"指的是点击按钮就执行JS文件中的CallServer()函数;

  此外,记得在该文件的Head区域引用js文件,如:<script type="text/javascript" src="ParameteAjax.js">

  ②ParameteAjax.js文件

  该文件的代码,与上一例大致相同,仅存在细微的区别:

  var xmlHttp= false;
try
{
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
  try
  {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch(e2)
  {
    xmlHttp = false;
    }
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
{
  xmlHttp = new XMLHttpRequest();
}

function OnMessageBack()
{
   //判断请求状态及HTTP状态是否都能满足条件

  if (xmlhttp.readystate==4 && xmlhttp.status==200)

  {
    //将返回的文本打印到页面上
    document.write (xmlhttp.responsetext);

   }
}

function CallServer()
{
  var Text1=document.getElementById("P1").value;
  var url ="ParameteAjax.ashx?MyValue1="+escape(Text1);
  //请注意了,上一行代码就是传递参数的代码
  xmlHttp.open("GET", url, false);
  xmlHttp.onreadystatechange = UpdatePage;
  xmlHttp.send(null); 
}

function UpdatePage()
{
  if (xmlHttp.readyState < 4)
  {
    
  }
  if (xmlHttp.readyState == 4)
  {
    var response = xmlHttp.responseText;
    document.getElementById("P2").value=response;
    
 }
}

  ③ParameteAjax.ashx

  该文件的代码,简单到达人看到了,会笑破肚皮的。

  using System;
using System.Web;

public class ParameteAjax : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write(context.Request["MyValue1"].Trim());
  
//注意,上一行代码就是处理参数的代码
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}

  讲完,以后俺再有什么心得体会,再贴出来与大家分享。


该杂文来自: 网站开发杂文

上一篇:最最简单的不用任何组件的Asp.net+Ajax无刷新实例

下一篇:asp.net2.0网站各种文件扩展名、文件夹介绍上篇

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计