我有一个在许多页面上使用的Custom.ascx文件。 Custom.ascx包含几个控件和一个名为cmdCustomPageButton的按钮。
当用户点击cmdCustomPageButton时,cmdCustomPageButton会执行一个从数据库中获取一些数据的Protected Sub。
使用Custom.ascx的Page1.aspx有自己的一组控件和程序。它包含一个名为cmdPage1Button的按钮和一个名为RetriveData的过程,该过程也由Page1.aspx中的其他过程调用。
单击cmdPage1Button时,它会调用RetriveData。 RetriveData仅适用于Page1.aspx。 Page2.aspx和Page3.aspx都有一个类似于RetriveData的过程,但只与它自己的页面相关。
尝试使用代码解释
Custom.ascx
Public Class Custom
Protected Sub cmdCustomPageButton_Click(Byval sender as Object, ByVal e as EventArgs) Handels cmdCustomPageButton_Click
//Code that gets data from the database
End Class
Page1.aspx
Public Class Page1
Protected Sub cmdPage1Button_Click(Byval sender as Object, ByVal e as EventArgs) Handels cmdPage1Button_Click_Click
//Some code
RetriveData()
End Sub
Sub RetriveData()
//Some code
End Sub
End Class
问题。
当单击cmdCustomPageButton时,如何从相关页面调用不同的RetriveData过程,即Page1,Page2或Page3?
答案 0 :(得分:0)
请参阅下面的链接,以便更好地了解与您类似的查询。
Calling a method in parent page from user control
简而言之,在用户控件中创建一个事件委托,并在每个使用用户控件的页面中处理事件。如果单击用户控件中的按钮,则会在相应的父页面中触发该事件,您可以在该事件中调用RetriveData方法。对不起,如果您的查询被误解了。
答案 1 :(得分:0)
MyUserControl.ascx页面代码。
Public Class MyUserControl
Inherits System.Web.UI.UserControl
Public Event UserControlButtonClicked As EventHandler
Private Sub OnUserControlButtonClick()
RaiseEvent UserControlButtonClicked(Me, EventArgs.Empty)
End Sub
Protected Sub TheButton_Click(ByVal sender As Object, ByVal e As EventArgs)
' .... do stuff then fire off the event
OnUserControlButtonClick
End Sub
End Class
Default.aspx页面代码
Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' hook up event handler for exposed user control event
AddHandler MyUserControl.UserControlButtonClicked, AddressOf Me.MyUserControl_UserControlButtonClicked
End Sub
Private Sub MyUserControl_UserControlButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
' ... do something when event is fired
End Sub
End Class
所有信用gos给clklachu指出我正确的方向。
通过以下网站进行转换link
谢谢