勇哥注:
前台页面调用后台方法是高频度的应用。分为无刷(新)和有刷(新)两种响应方式。
对于用户体验来说,无刷方式要更受欢迎一些。
(一)通过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
版权声明:本文为博主原创文章,转载请附上博文链接!


少有人走的路



















