比如前台页面
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
(1)
<a href="#" οnclick="document.getElementById('Button1').click()">触发服务器端按钮事件</a>
(2)
利用GetPostBackEventReference给客户端生成__doPostBack()
前台
<a href="#" οnclick="<%=PostBack()%>">触发服务器端按钮事件</a>
后台
protected string PostBack()
{
return this.Page.GetPostBackEventReference(this.Button1,"haha");
}
通过__EVENTARGUMENT="haha"可以判断是不是点了那个链接的PostBack
把Button1的按钮事件这么写:
if(Request["__EVENTARGUMENT" ]=="haha")
{
Response.Write("这个是链接的PostBack");
}
else
{
Response.Write("这个不是链接的PostBack");
(1)加个DISPLAY:NONE属性 或者 定义一个宽度和高度都是0的按钮
在页面中加个DISPLAY:NONE属性的ASP.NET的BUTTON控件
把你需要执行的事件写在BUTTON的触发事件里
JS就写
document.all.BUTTON_name.click();
或者是定义一个宽度和高度都是0的按钮(不能定义Visible=false的按钮,一定要大小0)
然后
<script language="javascript">
function love()
{
。。。
按钮名.click();
。。。
}
</script>
然后后台代码放在 按钮名.click(); 事件里。
之所以不能用Visible=false的按钮因为当Visible=false时并不生成客户端按钮,也就无法触发click()了。
(2)特例:客户端回车激发按钮事件(javascript中调用.Net事件)
From csdn.net
在一个页面上存在多个按钮,有的时候希望按回车直接实现点击某按钮的效果,解决方法如下:
<script language="javascript">
function document.onkeydown()
{
var e=event.srcElement;
if(event.keyCode==13)
{
document.getElementById("需要点击的那个按钮的id").click();
}
}
</script>
如果页面上有多行文本框,在多行文本框内回车仅仅想实现换行而不是提交表单这么修改
if(e!=document.getElementById("多行文本框的id")&&event.keyCode== 13)
文本框中点回车激发按钮事件(C#代码):
this.TextBox1.Attributes.Add("onkeydown","if(event.keyCode == 13){document.getElementById('按钮ID').click();");