js调用cs中函数的方法 和 在cs中调用js函数的方法〔总结〕
js调用cs中函数的方法 
在前台js代码里写上<%method();%>
      举例:
      cs文件中写的有
      public void method()
      {
          ....执行某些操作.
      }
      这个函数,然后在前台页面的js里面调用.
      <script type="text/javascript">
          <%method();%>
      </script>
cs中调用js网站底部代码js特效函数
法一:ClientScript.RegisterStartupScript(GetType(), "事件或属性名", "事件或属性内容");
  示例:
protected void Page_Load(object sender, EventArgs e)
    {

      string ttt= "ttt";

      string js= "<script type='text/javascript'>";
        js+= "function istwo(m){alert(m);} </script>";


        ClientScript.RegisterStartupScript(GetType(),"registerJS", js);

        ClientScript.RegisterStartupScript(GetType(),"runJS","istwo(" + ttt+ ")");
      }


法二:控件id.Attributes.Add("事件或属性名", "事件或属性内容");
示例:
btnPost.Attributes.Add("onclick", "return CheckInput()");
法三:直接把js代码当作字符串输出到客户端,让客户端来解释执行。
示例:
Response.Write(" <script>function fun(){alert(" + m + ")} </script>")
======================================================
转: 中前台javascript与后台c#函数相互调用
文章出处:DIY部落(www.diybl/course/1_web/javascript/jsjs/200798/71020.html)
C#代码与javaScript函数的相互调用
问:
1.如何在JavaScript访问C#函数?
2.如何在JavaScript访问C#变量?
3.如何在C#中访问JavaScript的已有变量?
4.如何在C#中访问JavaScript函数?
问题1答案如下:
javaScript函数中执行C#代码中的函数:
方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
2、在前台写一个js函数,内容为ElementById("btn1").click();
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
示例:
代码
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head id="Head1" runat="server">
<title>列表页</title>
<style type="text/css">
.display
{
display:none;
}
</style>
<script type="text/javascript" language="javascript">
function Download(sI)
{
ElementById("btn").click();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="btn" runat="server"
OnClick="btn_Click" Text="" CssClass="display"" />
//注:此处Button控件不能加Visible="false"来隐藏,只能通过样式
</form>
</body>
</html>
方法二:1、函数声明为public
后台代码(把public改成protected也可以)
public string ss()
{
return("a");
}
2、在html里用<%=fucntion()%>可以调用
前台脚本
<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>
方法三: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 id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')">
方法四:<script language="javascript">
function SubmitKeyClick()
{
if (event.keyCode == 13)
{
event.cancelBubble = true;
urnValue = false;
document.all.FunName.value="你要调用的函数名";
document.form[0].submit();
}
}
</script>
<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉
在.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 id="xx" 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;
}
  Page.ClientScriptClientScriptScriptManagerClientScriptManager 区别是什么 收藏
.aspx.cs 页面中,输入这四个东西:Page.ClientScriptClientScriptScriptManagerClientScriptManager,均会出提示,表示它们均可用,那么它们有什么区别呢?
Page.ClientScript ClientScript 的关系
这二者实际上是一个东西,后者只是省略了 Page。都是获取用于管理脚本、注册脚本和向页添加脚本的 ClientScriptManager 对象。
ScriptManager ClientScriptManager 区别
他们的名称空间均是 System.Web.UI
ScriptManager 是用于管理 AJAX 脚本库和脚本文件;
ClientScriptManager 用于管理普通的 script,就比如向客户端输出一个 <script>alert("");</script>
ClientScript ClientScriptManager 区别
ClientScript ClientScriptManager 的对象,ClientScriptManager 是类。
Page.RegisterClientScriptBlock Page.RegisterStartupScript(也可省略 Page
微软已经不推荐这样写,而应该是 ClientScript.RegisterClientScriptBlock ClientScript.RegisterStartupScript
Response.Write与Page.ClientScript之间的区别
2010年05月24日 星期一 13:41
Response.Write   Page.ClientScript.RegisterStartupScript Page.ClientScript.RegisterClientScriptBlock 之间的区别
方法1,使用Response.Write,这种方法会把JS代码写在页面的最顶部(<html>的前面):
System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert(JS代码);</script>");
方法2,使用RegisterStartupScript,这种方法会把JS代码嵌入在页面的底部、表单的最后 (</form>前面),适用于要在页面控件加载完成后运行的JS代码 :
System.Web.UI.Page page = (System.Web.UI.Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"clientScript"))
    page.ClientScript.RegisterStartupScript(page.GetType(), "clientScript", "<script language=javascript>alert(JS代码);</script>");
方法3,使用RegisterClientScriptBlock,这种方法会把JS代码嵌入在页面的顶部、表单的最前 (<form>后面),适用于要在控件加载前执行的JS代码,类似于上面的Response.Write方式 :
System.Web.UI.Page page = (System.Web.UI.Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered(page.GetType(),"clientScript"))
    page.ClientScript.RegisterClientScriptBlock(page.GetType(), "clientScript", "<script language=javascript>alert(JS代码);</script>");
那么,方法2和方法3之间有何不同呢?主要区别在于,RegisterStartupScript 方法是将 JavaScript 嵌入到 ASP.NET 页面的底部,恰好位于关闭元素 </form> 的前面。RegisterClientScriptBlock 方法是将 JavaScript 嵌入到页面中开启元素 <form> 的紧后面。那么,这有何不同呢?正如我们将要看到的,这有很大的不同。
就此列举一例,以下是在页面加载到浏览器时,将焦点置于该页面上的一个文本框中的方法 - 使用利用了 RegisterStartupScript 方法的 Visual Basic:
Page.ClientScript.RegisterStartupScript(Me.GetType(), "Testing", _  "document.forms[0][TextBox1].focus();", True)
由于在浏览器运行到页面底部并执行此小段 JavaScript 时,就已生成了页面上的文本框,并已将其放到了页面中,因此,此方法运行正常。但是,如果不按照上述方法,而编写如下代码(使用 RegisterClientScriptBlock 方法):
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "Testing", _  "document.forms[0][TextBox1].focus();", True)
文本框控件将不会获得焦点,且会在页面上生成一个 JavaScript 错误
Page_load调用JS函数以及confirm的用法
Page_load调用JS函数以及confirm的用法
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //Page.RegisterStartupScript("","<script>aa()</script>");
            Page.RegisterStartupScript("", "<script>aa(),bb()</script>");
         
        }
     
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Page.RegisterStartupScript("", "<script>bb()</script>");
        Response.Write("<script>if(confirm('确定转向百度,取消打开Google')) {location='www.baidu';} else{window.open('le');}</script>");
    }
<script type="text/javascript">
        function aa()
        {
            ElementById("txtlove").value="Page_load调用函数我不爱你!"
        } 
        function bb()
        {
               
            if(confirm("确定要转向吗?"))
            {
                window.open("Default.aspx");
            }
            else
            {
              window.open("Default2.aspx");   
            }
        }
    </script>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。