从不同页面调用程序

时间:2011-11-04 11:53:32

标签: asp.net vb.net

我有一个在许多页面上使用的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?

2 个答案:

答案 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

谢谢