关于服务器端控件与客户端之间的交互

1、服务器端控件执行客户端脚本,可以利用OnClientClick事件。

下面有2个按钮,一个是客户端,一个是服务器端:

<input type="Button1" value="Submit" οnclick="EventFunction()" />

<asp:Button ID="Button2" runat="server" Text="Button"  OnClientClick="EventFunction();" />
很多人肯定以为上面两个按钮的效果是一样的。

其实点击Button2(服务器端控件),后你会发现执行完客户端脚本之后,它继续会回传到服务器上,重新加载页面。

那么怎么禁止这种控件执行完之后不回传服务器呢?
答案就是给OnClientClick 事件return false值。代码变为
<asp:Button ID="Button2" runat="server" Text="Button"  OnClientClick=" return EventFunction();" />
EventFunction方法return false。
这样就不会回传服务器端了。

当然也可以这样来做:OnClientClick="EventFunction();return false;

 

附注说明:

如果直接在 Web 窗体的 HTML 代码内为服务器端控件添加客户端事件代码,就像这样:
<asp:Button id="Button1" OnClick="window.alert('按钮被按下了')" Text="按钮1"/>

     你会发现,当按下这个按钮时,并没有预定的消息框弹出,而是直接执行服务器端代码内的响应按钮按下事件的 Button1_Click 方法(假设我们已经为按钮绑定了这个事件)。如果查看客户端页面的源代码,按钮的 OnClick 事件里,根本没有自己写的代码,却变成了"JavaScript:__doPostBack(...)"。
其实这正是.NET Framework 转换工作的一部分。有了这个"JavaScript:__doPostBack(...)",才能实现按钮提交、服务器端响应事件等一系列动作。

2、利用服务器端控件的Attributes属性

想为服务器控件添加客户端的事件,需要用到Attributes属性。Attributes属性是所有的服务器控件都有的一个属性,它用来为最终生成的HTML添加自定义的一些标记。假设Web Form上有一个保存按钮btnSave,希望在用户点此按钮时提示用户是否确实要保存(比如一旦保存就无法恢复等),则应在Page_Load事件中添加如下代码:

  btnSave.Attributes.Add(“onclick”,“Javascript:return confirm(‘Are you sure tosave?’);”)

要注意的是‘return’,这是不可省的,否则即使用户点了取消,数据仍然会保存。

 

 

参考:

http://www.cnblogs.com/nightmare23/archive/2010/01/22/nightmare23.html

http://www.cnblogs.com/majiangquan/archive/2009/03/20/1417837.html

http://www.cnblogs.com/linzheng/archive/2010/09/11/1824169.html

转载于:https://www.cnblogs.com/lzm525/archive/2010/12/15/1907030.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值