怎么让asp.net按钮既调用js函数,并且调用后台方法

怎么让asp.net按钮既调用js函数,并且调用后台方法,第1张

页面上放一个服务器端控件Button ,这个Button放在一个隐藏的DIV中,添加这个Button的OnClick后台事件,然后你可以在js事件里通过_doPostBack调用这个Button的客户端事件

javaScript函数中执行C#代码中的函数:
方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
2、在前台写一个js函数,内容为documentgetElementById("btn1")click();
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
方法二: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 = documentForm1; //指runat=server的form
theForm__EVENTTARGETvalue = eventTarget;
theFrom__EVENTARGUMENTvalue = eventArgument;
theFormsubmit();
}
-->
</script>
<input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')">
方法四:<script language="javascript">
function SubmitKeyClick()
{
if (eventkeyCode == 13)
{
eventcancelBubble = true;
eventreturnValue = false;
documentallFunNamevalue="你要调用的函数名";
documentform[0]submit();
}
}
</script>
<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉
在CS里有:
public Page_OnLoad()
{
if (!PageIsPost())
{
string strFunName=RequestForm["FunName"]!=nullRequestForm["FunName"]:"";
//根据传回来的值决定调用哪个函数
switch(strFunName)
{
case "enter()":
enter() ; //调用该函数
break;
case "其他":
//调用其他函数
break;
default:
//调用默认函数
break;
}
}
}
public void enter()
{
//……比如计算某值
}

js不能直接调用服务器端的方法
只能通过提交页面,或者调用一个专门的页面来返回需要的结果
或者用ajax来实现
LZ的方法<%# %>只能是在生成页面时把后台的变量或函数返回值作为字符串写入页面而已。

一般都不是后台代码造成的,后台执行函数的速度都是极快的,既然你能访问就说明后台代码可能存在不合理之处,但是绝对不是速度慢的决定性因素,你记录了的话,总共也就一秒的时间都说多了。不知道你用什么框架,你的需求可以用事务来处理,代理就是解决这个问题设计的。出现这问题最大的可能是前台代码。你用IE、或者火狐(需要firebug插件)的开发者工具捕获一下网络这一项,就会看到每个请求所用的时间,对症下药。另外慢也可能是网络的原因(比如访问远程网络或远程的数据库),逐一排除好了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13368756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存