前台调用后台事件和方法实现小结

本文介绍了一种在前端HTML中通过触发隐藏的ASP.NET按钮来间接调用后台复杂运算并更新页面数据的方法。该方法避免了直接调用后台方法无法更新前端显示的问题,通过触发事件实现了前后端的有效交互。

在实际开发过程中,我们的HTML元素需要调用后台,而且需要让后台进行复杂运算后再进行数据重新绑定操作,遇到这样的问题怎么办呢?可能有人说在后台创建一个方法,该方法实现绑定数据操作,但是实际呢?结果不尽人意,它没有执行绑定的实现,而只是简单的执行一下方法但是前台无反应,为什么出现这样的情况?原来前台调用后台方法其实只是返回结果,对实现过程及元素组合变化不管不问,它只是关注执行后的结果,不为过程买单,那么有什么方法解决这个问题呢?想想?我们可不可以让前台HTML元素触发ASP.NET按钮来触发事件呢,同时隐藏这个按钮?让它去实现绑定操作。该技巧是可行的!!本楼主为了操作简单没有以绑定数据作为示例,而只是简单的打印数据,原理基本和绑定数据类似,代码如下:

这是前台代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <script src="JS/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#btnTJ1").bind("click", function () {
                var result = '<% =Print2Web() %>';
                alert("执行完毕,请检查一下后台数据有没有打印出来");//结果显然没有打印出来
            });
 
            $("#btnTJ2").bind("click", function () {
                $("#<%= btnGet.ClientID %>").trigger("click");//效果实现了
            });
        });
    </script>
</head>
<body>
    <form runat="server">
        <input type="button" value="前台HTML元素调用后台方法" id="btnTJ1" />
        <input type="button" value="前台HTML元素调用后台事件" id="btnTJ2" />
 
        <div style=" visibility: hidden">
            <asp:Button ID="btnGet" runat="server" Text="辅助前台获取数据" onclick="btnGet_Click" />
        </div>
    </form>
</body>
</html>

下面是后台代码:

protected void Page_Load(object sender, EventArgs e)
{
 
}
 
/// <summary>
/// 通过借助后台事件 -- 能否在页面输出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnGet_Click(object sender, EventArgs e)
{
    //
    // 这里有复杂实现
    //
    Response.Write("事件按钮打印--测试成功");
}
 
/// <summary>
/// 后台方法  -- 目的是前台调用,能否在页面输出
/// </summary>
public int Print2Web()
{
    //
    // 这里有复杂实现
    //
    Response.Write("调用方法打印--测试成功");
    return 1;
}

 

转载于:https://www.cnblogs.com/itzhanghb/p/5923691.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值