zoukankan      html  css  js  c++  java
  • ASP.NET学习3.前端和后台的相互调用

    1.前端的HTML服务器控件中调用前端的js

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ShowMessageBox._Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>MESSAGEBOX</title>

        <script type="text/javascript">

            function test2() {
                alert("这是为什么呢");
            }
        </script>
    </head>
    <body>
        <button id="button" onclick="test2()">调用js</button>

    </body>
    </html>

    2.Web服务器控件调用js函数

    这个貌似做不到? Button2调用上面的test2()方法:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>MESSAGEBOX</title>

        <script type="text/javascript">

            function test2() {
                alert("这是为什么呢");
            }
        </script>
    </head>
    <body>
        <form runat="server" >                   
          <asp:Button ID="Button2" runat="server" Text="调用前端js函数"  OnClick="test2()" ></asp:Button>
        </form>
    </body>
    </html>

    结果:

     test2()是客户端的脚本,并不存在与服务器中,不能被服务器控件调用。

    3.服务器控件调用后台C#代码(传说中的code-behind技术):

    Default.aspx的部分代码:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>MESSAGEBOX</title>

    </head>
    <body>
        <form runat="server" >          
        <asp:Button id="Button1" runat="server" Text="对话框" onclick="Button1_Click1" ></asp:Button> 

        </form>

    </body>
    </html>

    Default.aspx.cs的部分:

            protected void Button1_Click1(object sender, EventArgs e)
            {
                CallJs();    //这里再去调用前端js
            }

    4.后台C#代码调用前端中已有的js函数

    后台:

            private void CallJs()
            {
                ClientScriptManager cs = Page.ClientScript;
                cs.RegisterStartupScript(this.GetType(), "testPage", "<script>test2()</script>");
            }

    前端:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>MESSAGEBOX</title>

        <script type="text/javascript">
            function test2() {
                alert("这是为什么呢");
            }
        </script>
    </head>
    <body>  
    </body>
    </html>

    适用RegisterStartupScript方法同样可以发送一段js代码:cs.RegisterStartupScript(this.GetType(), "testPage", "<script>alert("这是为什么呢")</script>");

    2013年6月13日补充:RegisterStartupScript方法是向页面中注入脚本,并且注册的脚本只有在页面的onload事件触发时才执行。

  • 相关阅读:
    MotionEvent的getX(),getY()与getRawX(),getRawY()区别
    ProgressBar
    Android UI-SlidingMenu侧滑菜单效果
    CentOS采用grub进 single状态
    C++外观设计模式模式(三)
    01背包和背包完全
    Android开展Exception:ActivityNotFoundException: Unable to find explicit activity class
    圆通数据库泄露
    学生有自己的, 其他生活
    串行卧重建14:我们是等自己测试的主动性
  • 原文地址:https://www.cnblogs.com/superdaddy/p/3127136.html
Copyright © 2011-2022 走看看