【发布时间】:2015-09-29 07:33:08
【问题描述】:
可以在here 找到关于回发机制如何工作的非常详细的说明。
在 ASP.NET 中,控件通常有很多事件。例如LinkButton 类有Click 事件。
以下代码:
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" Text="LinkButton" />
在客户端被翻译成这个:
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>
如您所见,客户端的代码没有指定要触发的事件或事件处理程序。
所以我的问题是,如果服务器从客户端接收的唯一信息是组件的 ID(__doPostBack 方法的第一个参数),那么服务器如何知道它应该触发 Click 事件和 LinkButton1_Click 事件处理程序?
如果我希望组件触发与Click 不同的事件怎么办?
【问题讨论】:
-
你想触发什么事件?在所描述的场景中,只有点击才有意义,这就是服务器知道的方式。
-
正如@zespri 所说,没有其他事件可以挂钩。链接按钮也有一个命令事件,但是当它被点击时,点击和命令事件都会在服务器端触发。
-
在这种情况下,是的,但是如果我有一个自定义控件,对于客户端来说,超过 1 个事件是有意义的,我将如何做到这一点?然后我应该在调用 doPostBack 时传递有关在 eventargs 中触发哪个事件的信息吗?
-
您可以为此使用第二个参数“事件参数”。
标签: javascript asp.net events webforms