По моему мнению, вам следует вызвать событие из UC_Menu.ascx, затем обработать его на главной странице и снова вызвать событие с главной страницы. Наконец, вы можете перехватить событие с помощью обработчика события в Customer.aspx и вызвать функцию из UC_Details.ascx.
Итак, код для этой проблемы должен быть:
1) Внутри вашего UC_Menu.ascx.vb поднять событие:
Partial Class UserControls_UC_Menu
Inherits System.Web.UI.UserControl
Public Event SomethingChanged As EventHandler
Public Sub SomethingHappend()
RaiseEvent SomethingChanged(Me, EventArgs.Empty)
End Sub
End Class
2) В главной странице перехватить событие и поднять его до Customer.aspx
Public Event SomethingChanged As EventHandler
Private Sub UC_MenuInstance_SomethingChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UC_Menu.SomethingChanged
RaiseEvent Me.SomethingChanged(Me, EventArgs.Empty)
End Sub
3) Определите в разметке Customer.aspx после директивы страницы:
<%@ MasterType VirtualPath="~/MasterPages/MainLayout.master" %>
4) Внутри UC_Details.ascx.vb определите некоторый метод, который должен быть вызван:
Public Sub DoWork()
'Do some work here
End Sub
5) Поместить в Customer.aspx.vb:
' Add handler for Master page event
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
AddHandler Me.Master.SomethingChanged, AddressOf MasterEventHandler
End Sub
' Call UC_Details user control function here
Private Sub MasterEventHandler(ByVal source As Object, ByVal e As EventArgs)
UC_DetailsInstance.DoWork()
End Sub