【发布时间】:2014-05-27 17:18:00
【问题描述】:
我有一个带有 usercontrol1 的 aspx,在 usercontrol1 里面是 usercontrol2。在 usercontrol2 我有一个按钮,我想要发生的是当单击此按钮时,在回发时我想先触发 button_click 事件,然后再转到 aspx 的 page_load 事件。这可能吗?我需要首先触发 button_click 事件,因为在 aspx 的 page_load 事件中回发时,我会将用户重定向到另一个页面。所以在重定向用户之前,我需要获取用户在usercontrol2中输入的数据。我已经阅读了很多关于发起活动和代表的内容,但是对于像我这样的新手,我不能很好地理解它。请帮助我解决这个问题。
更新:我能够在 aspx 页面中使用 addhandler 和引发事件验证用户之前触发 button_click 事件,但问题是我没有得到任何价值。我正在考虑使用 postdata(因为这发生在回发时),但我不知道如何以及它是否正确?请帮忙,下面是代码
在 ASPX 中:
Public Event ShoppingCartClick As EventHandler
Private userControl As userControl2
Protected Overrides Sub OnInit(e As EventArgs)
AddHandler ShoppingCartClick, AddressOf userControl2.btnShoppingCart_Click
MyBase.OnInit(e)
End Sub
If IsPostBack Then
RaiseEvent ShoppingCartClick(sender, e)
If MyBase.CurrentWebUser.IsLoggedIn Then
Response.Redirect("ShoppingCart.aspx")
Else
Response.Redirect("Login.aspx")
End If
End If
【问题讨论】:
-
有人帮忙吗?我已经搜索过,但我找不到与我想要引发事件的控件或过程位于嵌套 ascx 内的情况相同的情况。
-
您是否考虑过将重定向逻辑移动到按钮单击事件之后,而不是先尝试单击按钮?也许是 OnLoadComplete 事件。
-
aspx 的 OnLoadComplete 事件?我还没有尝试过使用 OnLoadComplete,我会尝试并提供反馈。非常感谢。
-
是的。它成功了。无需引发事件。非常感谢这个提示。
标签: asp.net vb.net onclick ascx raiseevent