分享

博客园 - 小山 - Ajax使用初步

 pstn 2006-07-07

 Ajax定义为“Asynchronous JavaScript + XML”的简称,也就是异步的JavaScript和XML处理。从原理上看,主要是Ajax可以通过调用HttpRequest实现与服务器的异步通讯,并最终在网页中实现丰富友好的用户界面
Ajax使用初步,配置步骤
1.把Ajax.dll copy到应用系统bin目录下,然后在工程引用中引用Ajax.dll,如果没有的话可以下载/Files/singlepine/Ajax.rar
2.配置web.config,添加如下信息

<httpHandlers>
  
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
3.假设应用系统叫Document,目录格式为Pages\AjaxTest
4.在Pages\AjaxTest下建立cs文件AjaxMethod.cs,添加如下方法

//[Ajax.AjaxMethod]
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public static string GetNIVNumber(string str)
{
 
return str;
}
5.在Pages\AjaxTest下建立页面AjaxForm.aspx
<HTML>
 
<HEAD>
  
<title>AjaxForm</title>
  
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  
<meta name="CODE_LANGUAGE" Content="C#">
  
<meta name="vs_defaultClientScript" content="JavaScript">
  
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  
<script language="javascript">
  
function testAjax()
  
{
   
var first=document.getElementById("txtfirst");
   AjaxMethod.GetNIVNumber(first.value,callback_GetNIVNumber);
  }

  
function callback_GetNIVNumber(res)
  
{
   
var obj=document.getElementById("txtsecond");   
   obj.value
=res.value;    
  }

  
</script>
 
</HEAD>
 
<body MS_POSITIONING="GridLayout">
  
<form id="Form1" method="post" runat="server">
   
<INPUT style="Z-INDEX: 101; LEFT: 208px; POSITION: absolute; TOP: 40px" type="button" value="Button"
    onclick
="testAjax();">
   
<asp:TextBox id="txtfirst" style="Z-INDEX: 102; LEFT: 40px; POSITION: absolute; TOP: 40px" runat="server"></asp:TextBox>
   
<asp:TextBox id="txtsecond" style="Z-INDEX: 103; LEFT: 40px; POSITION: absolute; TOP: 72px" runat="server"></asp:TextBox>
  
</form>
 
</body>
</HTML>
protected System.Web.UI.WebControls.TextBox txtfirst;
protected System.Web.UI.WebControls.TextBox txtsecond;
private void Page_Load(object sender, System.EventArgs e)
{
 
//注册,其中Document.Pages.AjaxTest.AjaxMethod为AjaxMethod.cs方法所在的命名空间
 Ajax.Utility.RegisterTypeForAjax(typeof(Document.Pages.AjaxTest.AjaxMethod));
}
然后运行就可以了,
实现效果:在第一个textbox中输入内容,点击button,就把内容显示到第二textbox中。这只是一个简单的示例,还可以修改调用方法,从数据库读取以及更复杂的操作
posted on 2005-10-12 21:03 小山 阅读(3836) 评论(19)  编辑 收藏 收藏至365Key 所属分类: Ajax&Altas

Feedback

# re: Ajax使用初步 2005-11-15 23:15 silentwins
小山哥:
你的 4.在Pages\AjaxTest下建立cs文件AjaxForm.cs,添加如下方法
应改为 4.在Pages\AjaxTest下建立cs文件AjaxMethod.cs,添加如下方法  回复
  

# re: Ajax使用初步 2005-11-15 23:28 silentwins
还有,可以解释一下
<script language="javascript">
function testAjax(owner, item, evt)
{
var first=document.getElementById("txtfirst");
AjaxMethod.GetNIVNumber(first.value,callback_GetNIVNumber);
}
function callback_GetNIVNumber(res)
{
var obj=document.getElementById("txtsecond");
obj.value=res.value;
}
</script>

中的AjaxMethod.GetNIVNumber(first.value,callback_GetNIVNumber); 简称(1)
& function callback_GetNIVNumber(res){} 简称(2)
和 AjaxMethod.cs中的 GetNIVNumber方法 简称(3) 三者间的关系或者它们的执行过程么?
(1)的作用看对象是调用(3),但是看参数又好像调用(2),究竟......?

还有aspx文件中的后台那句话究竟是起什么作用?
初涉ajax,而且基础不是很好,望指教!  回复
  

# re: Ajax使用初步 2005-12-13 16:18 小賓
小山哥能不能解釋一下 AjaxMethod 為cs類為什麼javascript可以調用啊。  回复
  

# re: Ajax使用初步 2005-12-30 16:24 jason_18
支持!!!!!!!!!!!
文章很好啊!!!!!!!!
真的要花时间向小山老师好好学习!!!!!!!!!!
顶!!!!!!!!  回复
  

# re: Ajax使用初步 2006-01-06 13:55 student
想问问AJAX技术的好处之一是不是可以在不刷新页面的条件下从SERVER端取得更新后的数据  回复
  

# re: Ajax使用初步 2006-02-04 22:47 netfuns
利用ajax包装器就可以比较容易的创建异步不刷新应用了.
它内部是怎么实现的呢.
  回复
  

# re: Ajax使用初步 2006-02-10 10:29 Robert
我按照上面的步骤,运行后在第一个textbox输入后 点击按钮,IE左下脚就会出错:网页上有错误,提示说:Ajax_Test(是我建的项目的名称)未定义。
这是怎么回事啊。。。  回复
  

# re: Ajax使用初步 2006-02-17 21:34 小山
如果这个看的不够清楚,哪就参考
http://singlepine.cnblogs.com/articles/257954.html
提供了源代码  回复
  

# re: Ajax使用初步 2006-03-02 17:21 chen
目前有AJAXPRO.DLL,安装这个也一样的吧,安装这个是不是就是安装AJAX.NET框架呢?  回复
  

# re: Ajax使用初步 2006-03-21 10:07 深圳
这个直接用JS就可以实现吧,现在感觉不到AJAX的意义。
我用JS,XML就可以了。  回复
  

# re: Ajax使用初步 2006-04-11 16:42 sje067
找不到类型或命名空间名称“Ajax”(是否缺少 using 指令或程序集引用?)

我为什么会出现这种问题,能不能告诉我怎么解绝啊?
  回复
  

# re: Ajax使用初步 2006-04-23 21:01 d
@小山
  回复
  

# re: Ajax使用初步 2006-04-27 13:20 菌哥
//[Ajax.AjaxMethod]
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public static string GetNIVNumber(string str)
{
return str;
}

请问小山,GetNIVNumber(string str)方法中的参数str能用泛型吗?  回复
  

# re: Ajax使用初步 2006-04-27 20:57 小山
有个错误先更正一下
function testAjax(owner, item, evt)应该为function testAjax()
//-----------------------------------
<script language="javascript">
function testAjax()
{
var first=document.getElementById("txtfirst");
AjaxMethod.GetNIVNumber(first.value,callback_GetNIVNumber);//first.value是传入的参数,callback_GetNIVNumber是回调函数,AjaxMethod.GetNIVNumber是后台操作数据库的方法,执行这句代码时会先调用后台AjaxMethod.GetNIVNumber方法,然后执行callback_GetNIVNumber把后台取到的内容赋给var obj=document.getElementById("txtsecond"); ,这样就把first的内容赋给了second
}
function callback_GetNIVNumber(res)
{
var obj=document.getElementById("txtsecond");
obj.value=res.value;
}
</script>

上面示例只是入门演示,不值得研究,更详细的ajax可以参考

http://news.csdn.net/news/newstopic/28/28204.shtml
http://singlepine.cnblogs.com/articles/257954.html
http://singlepine.cnblogs.com/articles/371720.html  回复
  

# re: Ajax使用初步 2006-04-28 10:53 菌哥
//[Ajax.AjaxMethod]
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public static string GetNIVNumber<T>(T str)
{
return str;
}

行不行?
  回复
  

# re: Ajax使用初步 2006-04-29 00:05 小山
@菌哥
它不支持泛型,它目前支持int、string、double、boolean、DateTime、DataSet和DataTable,以及自定义类和数组等基本类型。其他所有类型都返回它们的ToString值。
  回复
  

# re: Ajax使用初步 2006-05-26 11:16 ioleon13
怎么会出现这样的错误:
剖析器錯誤訊息: 找不到檔案或組件名稱 ‘ Ajax‘ 或其相依性的其中之一。

原始程式錯誤:


行 5:
行 6: <httpHandlers>
行 7: <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
行 8: </httpHandlers>
行 9:

  回复
  

# re: Ajax使用初步 2006-06-20 13:58 零点绝缘~
小山哥 为什么总是显示 AjaxMethod 未定义??  回复
  

# re: Ajax使用初步 2006-07-05 11:12 小竹
楼上和我一个错  回复

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多