本文总结了在ASP.NET环境中通过JavaScript调用C#后台代码的四种常见方法。包括利用按钮点击事件触发、公开方法直接赋值、模拟__doPostBack函数以及通过隐藏字段传递参数并处理Page_OnLoad事件。每种方法均附带关键代码片段,帮助开发者实现前后端无缝交互。
通过按钮点击事件触发
方案一:
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、 <!-- Inject Script Filtered -->
以下是引用片段:
代码如下:
<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','')">模拟__doPostBack函数提交
方案四:
以下是引用片段:
代码如下:
<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"> 〈!--用来存储你要调用的函数 --〉通过隐藏字段处理Page_OnLoad
在.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()
{
//……比如计算某值
}