zoukankan      html  css  js  c++  java
  • js调用.net后台事件,和后台调用前台等方法以及js调用服务器控件的方法

    http://blog.csdn.net/deepwishly/article/details/6670942  ajaxPro.dll基础教程(前台调用后台方法,后台调用前台方法)       

    1. javaScript函数中执行C#代码中的函数:

    方法一:间接触发后台代码

            1、首先建立一个服务端控件按钮命名为btn1,双击进入后台将调用或处理的内容写入btn1_click中;  

            2、在前台写一个js函数,内容为document.getElementByIdx("btn1").click();

            3、在前台调用js函数,激发click事件,等于访问后台c#函数;

            代码如下:

    <input id="hBt" type="button" value="CLICK ME2" onclick="fun2()" />

    <asp:Button ID="aBt" runat="server" Text="server BT" OnClick="aBt_Click" />

    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    当点击服务器端按钮的时候 给lable赋值

    protected void aBt_Click(object sender, EventArgs e)    

    {         Label1.Text = " 真的 假的~~~";     }

    js代码如下:

    function fun2() {     

      document.getElementById('aBt').click();

    }

      

    方法二:1、函数声明为public            

              后台代码(把public改成protected也可以)

              public string ss()

              {

                  return("a");

              }//

            2、在html里用 <%=fucntion()%>可以调用

              前台脚本

              <script language=javascript>

              var a = " <%=ss()%>";

              alert(a);

              </script>

           有参数的形式

    如图所示 都是html控件 输入姓名 点击按钮获取您输入的信息!


    代码如下:
    <div>
                Your Name is:<input id="name" type="text" /> 

               <input id="clickBt" type="button" value="GET NAME" onclick="fun()" />
                <input id="nameTxt" type="text" />
    </div>

    js如下:
    <script 
    language="javascript" type="text/javascript">
     function fun()
      {
                var name = document.getElementById('name').value;
                var nameStr = 
    '<%=getName("'+name+'") %>';页面在第一次加载的时候,由于页面的执行顺序,运行到这里的时候回以 ' + name + '的值传到后台,但不真正的执行后台方法
                
    document.getElementById('nameTxt').value = nameStr;
            }
        
    </script>

    后台代码如下:
    public string getName(string namePar)
        {
            return namePar + " is your name";

        }
    方法三:1、 <script language="javascript">

              <!--

              function __doPostBack(eventTarget, eventArgument)

              {

                  var theForm = document.Form1;    //指runat=server的form

                  theForm.__EVENTTARGET.value = eventTarget;

                  theFrom.__EVENTARGUMENT.value = eventArgument;

                  theForm.submit();

              }

              -->

              </script>

              <input type="button" value="按钮" >

          

    方法四: <script language="javascript">

    function SubmitKeyClick()

    {

        if (event.keyCode == 13)

        {

            event.cancelBubble = true;

            event.returnValue = false;

            document.all.FunName.value="你要调用的函数名";

            document.form[0].submit();

        }

    }

    </script>

    <INPUT type="text">

    <input type="hidden" > 〈!--用来存储你要调用的函数 --〉

    在.CS里有:

    public Page_OnLoad()

    {

    if (!Page.IsPost())

    {

    string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";

    //根据传回来的值决定调用哪个函数

    switch(strFunName)

    {

    case "enter()":

    enter() ; //调用该函数

    break;

    case "其他":

    //调用其他函数

    break;

    default:

    //调用默认函数

    break;

    }

    }

    }

    public void enter()

    {

    //……比如计算某值

    }

    2.如何在JavaScript访问C#变量?

    答案如下:

    方法一:1、通过页面上隐藏域访问 <input type="hidden" runat="server">

    方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为' <%=n%>'或"+ <%=n%>+"

    方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本

              " <script language='javascript'>var temp=" + tmp + " </script>"

              tmp是后台变量,然后js中可以直接访问temp获得值。

    3.如何在C#中访问JavaScript的已有变量?

    答案如下:

    方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;

            2、后台用request["id"]来获取值;

    方法二:可以用cookie或session

    4.如何在C#中访问JavaScript函数?

    答案如下:

    c#代码中执行javaScript函数:

    方法一:1、Page.RegisterStartupScript("ggg"," <script>SetVisible(1); </script>");

    方法二:使用Literal类,然后

    private void Button2_Click(object sender, System.EventArgs e)

    {

    string str;

    str=" <script language='javascript'>";

    str+="selectRange()";

    str+=" </script>";

    //Literal1.Visible=true;

    Literal1.Text=str;

    }

    原文来自:http://hi.baidu.com/xiaowei0705/blog/item/4d56163f5e4bf616bba16725.html

    客户端如何获取ASP.net服务器控件ID

    分类:C# 在ASP.NET中服务器控件的ID在客户端会发生一定的变化。如何利用document.getElementById()来获取控件中的值成为了一个难题。比如:在一个登录页面里面放入一个帐号输入框,一个密码输入框,一个提交按钮

    <asp:TextBox ID="TextBox_Uid" runat="server" MaxLength="20" ></asp:TextBox>

    <asp:TextBox ID="TextBox_Pwd1" runat="server" MaxLength="20" TextMode="Password"></asp:TextBox>

    <asp:Button ID="Button_Login" runat="server" Text="登录" OnClick="Button_Login_Click" OnClientClick="return CheckReg()" />

     如何准确获取服务器控件的ID?请看下面:使用<%=控件ID.ClientID%>

    为了减少输入的频繁提交。我在客户端写入一个Javascript方法,简单判断输入的值是否符合要求。如果账号和密码输入不为空,我就提交到后台进行判断。
    控件TextBox的ID为TextBox_Uid和TextBox_Pwd1但是在客户端竟然变成了ctl00_TextBox_User和ctl00_TextBox_Pwd。

    <script language="javascript" type="text/javascript">

    //检查账号、密码是否为空

    function CheckReg()

    {

    var uid = document.getElementById("<%=TextBox_Uid.ClientID %>").value;

    var pwd1 = document.getElementById("<%=TextBox_Pwd1.ClientID %>").value;

    if(uid == "" || pwd1 == "")

    {

    alert("账号和密码不能为空!");

    return false;

    }

    return true;

    }

    </script>

    转自:http://www.cnblogs.com/qinpengming/archive/2012/05/23/2514373.html

  • 相关阅读:
    Leetcode 191.位1的个数 By Python
    反向传播的推导
    Leetcode 268.缺失数字 By Python
    Leetcode 326.3的幂 By Python
    Leetcode 28.实现strStr() By Python
    Leetcode 7.反转整数 By Python
    Leetcode 125.验证回文串 By Python
    Leetcode 1.两数之和 By Python
    Hdoj 1008.Elevator 题解
    TZOJ 车辆拥挤相互往里走
  • 原文地址:https://www.cnblogs.com/mvv118/p/3912326.html
Copyright © 2011-2022 走看看