寂寞的风永不搁浅

学习之初 多为转载 未名出处 敬请见谅 点滴积累 必有作为

博客园 首页 新随笔 联系 订阅 管理

一、javaScript函数中执行C#代码中的函数:

方法一:

1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 

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

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

方法二:

1、函数声明为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; 
event.returnValue = 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()
{
//……比如计算某值
}

二、如何在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获得值。


三、如何在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; 
}

 

附录:ASP.NET 中快捷键(个人尝试,不尽合理,有好方法希望多多赐教)

Default.aspx文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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>无标题页</title>
</head>
<script type="text/javascript">
function btnClick()
{
  alert("前台调用!");
  document.getElementById("Button1").click();
}
function ctlent() 
{
if((event.altKey && event.keyCode == 83)) 
{  
  alert("响应按钮!");
  btnClick();  

}
</script>
<body onkeydown ="ctlent();" >
  <form id="form1" runat="server">
  <div>
  <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></div>
  </form>
</body>
</html>
Default.aspx.cs文件:

protected void Button1_Click(object sender, EventArgs e)
  {
  Response.Write("<script language='javascript'>alert('后台响应!');</script>");
  }


posted on 2008-12-22 11:08  景阳  阅读(687)  评论(1编辑  收藏  举报