asp控件带上runat="server"才可以使用OnClick=".cs文件中的函数名"
而HTML控件如<a><input>等标签,基本上在没有引用js的情况下,直接用上面的方法也可以调用.cs函数的
但是如果你 引用了.js文件,就可以不是那么顺利地能调用.cs函数了,可以使用如下方法调用
注意调用.js文件函数,貌似是需要去掉runat="server"的,不然是 会报错的。
如<a href="#" οnclick="js函数名"> ...</a>
一、JS调用CS(可以解决按钮无法调用cs后台方法(有误))
在.aspx文件直接加上
<script type="text/javascript">
//前台js函数调用后台函数
function JS函数名() {
<%.cs后台函数名();%> //PS:后台博主才知道,它是会直接运行的,加载这段js代码的时候就执行,而且只执行一次,哎-。- 所以这个方法还是不行,后来通过得知用jquery的$.ajax()就很完美地解决了 如何调用后台方法 以及 传参等一系列问题。
}
</script>
注意<% cs函数名(); %> 不要漏了分号在后面.
不能把这段代码写在.js文件通过引用方式来实现,必须放在aspx文件下这样写,不然也会报错。
后台.cs代码我就不写了。
二、CS调用JS(一般是在cs处理了一些东西后,再去js特殊处理一些东西,能利用好js加速我们的编程速度。。)
假设js代码中有InitCreatedTeam方法,需要传递2个参数,那么CS调用JS方法的代码如下,下面的方法是写在.cs文件的函数中的
ClientScript.RegisterStartupScript(Page.GetType(), "InitCreatedTeam"+v.id,
"<script>InitCreatedTeam('"+v.id+"','" + v.teamname + "')</script>");
第一个参数固定,第二个参数为key(唯一),第三个参数为<script> js函数名('参数一','参数二')</script>
注意:key必须要唯一,不然后续添加都失败
三、刷新界面会重复提交表单问题
在提交表单的按钮上加个onclick事件,在事件内加上Response.Redirect("xxx.aspx");代码,放到函数的最后一行!
xxx.aspx即你刷新的那个界面。
以上完毕!!!(真的是神坑好几个问题)
四、使用了runat="server"后,js获取不了该控件的问题
原因是因为加了runat="server"属性后,会变为asp控件,而asp控件的ID会变动,所以导致获取不到,网上也有其他方法类似
$("#<%=id.ClientID%>")但是不行!!