勇哥注:
前台页面调用后台方法是高频度的应用。分为无刷(新)和有刷(新)两种响应方式。
对于用户体验来说,无刷方式要更受欢迎一些。
(一)通过js代码调用asp.net的按钮
前台html代码
<form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> <input type="button" name="btnClick3" value="通过JS click asp.netButton" onclick="ClickButton();" /> </div> </form>
前台js代码:
<script type="text/javascript"> function ClickButton() { document.getElementById("Button1").click(); } </script>
后台代码:
protected void Button1_Click(object sender, EventArgs e) { Console.Write("Button1_Click"); }
这一种实现方法跟点击asp.net的按钮Button是一样的效果。
你会观察到页面进行了提交刷新动作。
就是因为这种刷新,让用户体验非常不好。
(二)通过"<%#Eval(“某字段”)%>" 调用
当用户点击input后,通过 onclick="GetProperty();" 执行js函数。
js函数里的<%=xxx%> 会调用后台的方法或者函数,得到结果后,再用js的alert()输出。
前台html代码:
<form id="form1" runat="server"> <div> <input type="button" name="btnClick" value="js调用后台屬性" onclick="GetProperty();" /> <input type="button" name="btnClick2" value="js调用后台代码" onclick="GetFunction();" /> </div> </form>
前台js代码:
<script type="text/javascript"> //直接调用后台属性 function GetProperty() { var str = "<%=Property%>"; alert(str); } //调用后台方法 function GetFunction() { var str = "<%=GetString()%>"; alert(str); } </script>
后台代码:
public partial class WebForm1 : System.Web.UI.Page { public string Property { get { return "test Property"; } } public string GetString() { return "通過GetString顯示"+ Property; } }
这一种方式可以把后台没有刷新页面的。
(三)通过ajax.dll 进行ajax访问
3.1 添加引用Ajax.dll
下载地址:http://pan.baidu.com/s/1o6VbeMe
3.2 在web.config里添加项目
<system.webServer> <handlers> <add name="ajax" path="ajax/*.ashx" verb="POST,GET" type="Ajax.PageHandlerFactory, Ajax"/> </handlers> </system.webServer>
3.3 注册后台方法
protected void Page_Load(object sender, EventArgs e) { Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));}
要引用的方法 上需加[Ajax.AjaxMethod]
[Ajax.AjaxMethod] public string MyFunc() { return "hello MyFunc()"; }
3.4 编写js函数
<script type="text/jscript"> { function ppp() { var result = WebForm1.MyFunc().value; alert(result); } } </script>
要注意的,这里WebForm1.MyFunc().value,要返回value哦!!
否则,会返回一个对象,而不是对象的值:
3.5 在html代码中进行调用js函数
这里要注意的是,并非只有input, button这些标签才可以有onclick。
事实上,几乎所有的html标签都可以用onclick。
<input id="btnSum" type="button" value="button" onclick="ppp();"/>
因为这种方式是ajax,所是效果是无刷的,是非常好的一种方式。
本文源码下载:
链接:https://pan.baidu.com/s/1F8VmfBIcAu9BLskzmSFt2g
提取码:mun5
--来自百度网盘超级会员V6勇哥的分享
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

