asp.net 前台页调用后台方法的几种方式


勇哥注:

前台页面调用后台方法是高频度的应用。分为无刷(新)和有刷(新)两种响应方式。

对于用户体验来说,无刷方式要更受欢迎一些。


(一)通过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是一样的效果。

你会观察到页面进行了提交刷新动作。

就是因为这种刷新,让用户体验非常不好。

image.png

(二)通过"<%#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;
        }
    }


这一种方式可以把后台没有刷新页面的。

image.png

image.png

(三)通过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哦!!

否则,会返回一个对象,而不是对象的值:

image.png


3.5 在html代码中进行调用js函数

这里要注意的是,并非只有input, button这些标签才可以有onclick。

事实上,几乎所有的html标签都可以用onclick。

<input id="btnSum" type="button" value="button" onclick="ppp();"/>


因为这种方式是ajax,所是效果是无刷的,是非常好的一种方式。

image.png



本文源码下载:

链接:https://pan.baidu.com/s/1F8VmfBIcAu9BLskzmSFt2g 

提取码:mun5 

--来自百度网盘超级会员V6勇哥的分享



--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-05-21 21:19:19 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864