关于AjaxPro的介绍见上一贴
效果图:
此例aspx源代码没有使用ASP.NET控件,交互完全由Javascript通过AjaxPro访问ASP.NET后台并更新
实现起来也很简单,主要的html代码:
- <body onload="OnLoad();">
- <form id="form1" runat="server">
- <div>
- <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">
- <tr>
- <td style="width: 43px; height: 1px;"> Name:</td>
- <td style="width: 131px; height: 1px;"><div id="label1"> (Loading Name...)</div>
- <div id="editlabel" style="display:none;">
- <input id="namebox" type="text" style="height: 13px; font-size: 11px;" />
- </div></td>
- <td style="width: 57px; height: 1px;"><input id="editbtn" type="button" onclick="editlabel()" value="Edit" style="width: 83px"/>
- <input id="okbtn" type="button" onclick="ok()" value="OK" style="width: 83px; display:none;"/>
- </td>
- </tr>
- </table>
javascript代码:
- function OnLoad()
- {
- Test.MyAjaxTest.GetLabelText(4,onLoad_callback);
- }
- function onLoad_callback(res)
- {
- document.getElementById("label1").innerHTML=res.value;
- }
- function editlabel()
- {
- document.getElementById("label1").style.display="none";
- document.getElementById("editlabel").style.display="";
- form1.namebox.value=document.getElementById("label1").innerHTML;
- form1.editbtn.style.display="none";
- form1.okbtn.style.display="";
- }
- function ok()
- {
- document.getElementById("editlabel").style.display="none";
- document.getElementById("label1").style.display="";
- Test.MyAjaxTest.SetLabelText(form1.namebox.value,setLabelText_callback);
- document.getElementById("label1").innerHTML="(Submiting...)";
- form1.okbtn.style.display="none";
- form1.editbtn.style.display="";
- }
- function setLabelText_callback(res)
- {
- document.getElementById("label1").innerHTML=res.value;
- }
ASP.NET后台(把变量设置为静态,以防止每次提交数据都初始化它,这里只是实例,真正应用肯定是要另外写数据访问层):
- static string Name = "DaHuang";
- protected void Page_Load(object sender, EventArgs e)
- {
- AjaxPro.Utility.RegisterTypeForAjax(typeof(MyAjaxTest));
- }
- [AjaxPro.AjaxMethod]
- public string GetLabelText(int a)
- {
- string res;
- res = Name;
- Thread.Sleep(500);
- return res;
- }
- [AjaxPro.AjaxMethod]
- public string SetLabelText(string s)
- {
- Thread.Sleep(500);
- Name = s;
- return Name;
- }
初学Ajax,原来对Javascript的应用也很浅少,上面的代码也是慢慢琢磨一步一步写的,代码肯定不够优雅...不要鄙视我...- -b