您的位置:首页 > 其它

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

2010-12-15 17:10 183 查看
1、服务器端控件执行客户端脚本,可以利用OnClientClick事件。

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

<input type="Button1" value="Submit" onclick="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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐