使用AjaxPro结合ASP.NET实现无刷新提交并更新数据

本文介绍如何使用 AjaxPro 库实现简单的 Ajax 功能,包括加载和更新 ASP.NET 后台数据。通过 JavaScript 与服务器端交互,实现网页局部刷新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于AjaxPro的介绍见上一贴

效果图:

此例aspx源代码没有使用ASP.NET控件,交互完全由Javascript通过AjaxPro访问ASP.NET后台并更新

实现起来也很简单,主要的html代码:

  1. <body onload="OnLoad();"
  2. <form id="form1" runat="server">  
  3. <div>  
  4. <table style="border-right: black 1px solid; border-top: black 1px solid; font-size: 11px; border-left: black 1px solid; border-bottom: black 1px solid; font-family: Tahoma; background-color: gainsboro">  
  5. <tr>  
  6. <td style="width: 43px; height: 1px;"> Name:</td>  
  7. <td style="width: 131px; height: 1px;"><div id="label1"> (Loading Name...)</div>  
  8. <div id="editlabel" style="display:none;">  
  9. <input id="namebox" type="text" style="height: 13px; font-size: 11px;" />  
  10. </div></td>  
  11. <td style="width: 57px; height: 1px;"><input id="editbtn" type="button" onclick="editlabel()" value="Edit" style="width: 83px"/>  
  12. <input id="okbtn" type="button" onclick="ok()" value="OK" style="width: 83px; display:none;"/>  
  13. </td>  
  14. </tr>  
  15. </table> 

javascript代码:

  1. function OnLoad() 
  2. {  
  3. Test.MyAjaxTest.GetLabelText(4,onLoad_callback);  
  4. }  
  5. function onLoad_callback(res)  
  6. {  
  7. document.getElementById("label1").innerHTML=res.value;  
  8. }  
  9. function editlabel()  
  10. {  
  11. document.getElementById("label1").style.display="none";  
  12. document.getElementById("editlabel").style.display="";  
  13. form1.namebox.value=document.getElementById("label1").innerHTML;  
  14. form1.editbtn.style.display="none";  
  15. form1.okbtn.style.display="";  
  16. }  
  17. function ok()  
  18. {  
  19. document.getElementById("editlabel").style.display="none";  
  20. document.getElementById("label1").style.display="";  
  21. Test.MyAjaxTest.SetLabelText(form1.namebox.value,setLabelText_callback);  
  22. document.getElementById("label1").innerHTML="(Submiting...)";  
  23. form1.okbtn.style.display="none";  
  24. form1.editbtn.style.display="";  
  25. }  
  26. function setLabelText_callback(res)  
  27. {  
  28. document.getElementById("label1").innerHTML=res.value;  

ASP.NET后台(把变量设置为静态,以防止每次提交数据都初始化它,这里只是实例,真正应用肯定是要另外写数据访问层):

  1. static string Name = "DaHuang"
  2. protected void Page_Load(object sender, EventArgs e)  
  3. {  
  4. AjaxPro.Utility.RegisterTypeForAjax(typeof(MyAjaxTest));  
  5. }
  6. [AjaxPro.AjaxMethod]  
  7. public string GetLabelText(int a)  
  8. {  
  9. string res;  
  10. res = Name;  
  11. Thread.Sleep(500);  
  12. return res;  
  13. }  
  14. [AjaxPro.AjaxMethod]  
  15. public string SetLabelText(string s)  
  16. {  
  17. Thread.Sleep(500);  
  18. Name = s;  
  19. return Name;  

初学Ajax,原来对Javascript的应用也很浅少,上面的代码也是慢慢琢磨一步一步写的,代码肯定不够优雅...不要鄙视我...- -b

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值