ASP.Net动态UserControl按钮未触发

时间:2018-09-26 19:28:39

标签: c# asp.net vb.net

我有一个动态用户控件,上面有一个用于摘要仪表板的按钮。单击该按钮将不会触发click事件。控件的创建不会在Page_Load中发生,它们不会在程序中的其他地方发生。我在一个循环中创建它们,并创建该控件的1到X个实例。我知道它在PageLoad中工作时确实起作用,因为我有一个小的单独的WebApp来设计这些控件,并且只要将它们加载到PageLoad中,一切就可以在该应用程序中100%运行。我也知道,当我按下按钮时,控件会由于页面和回发的生命周期而消失。这很好,因为无论如何,只要单击UserControls按钮,我都会使它们消失。

直到我在dashboard.aspx.vb中单击之前,我不知道有多少UnerControls将被添加到X的dashboard1。在单击该控件之前,我也没有数据来设置UserControl的属性。 dashboard.aspx.vb

任何帮助将不胜感激

main.aspx

<div id="divPumpMainBody" runat="server" style="float: left; ">
</div>

UserControl.ascx

<asp:Panel ID="MainPumpPanel" runat="server" Height="100%">

<telerik:RadImageButton ID="RB" runat="server"  Image-Url="/Main/Images/Dash/Clear.png"  
    Style="position: absolute; z-index: 1; width: 100%; height: 100%;">
</telerik:RadImageButton>

</asp:Panel>

UserControl.ascx.vb

Public Class UC_Pumps
Inherits System.Web.UI.UserControl

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub

Private Sub RB_Click(sender As Object, e As ImageButtonClickEventArgs) Handles RB.Click
    msgbox("I was Clicked..")
End Sub
End class

创建用户控件 这在Dashboard.aspx.vb中

For i = 0 To DT_Dash.Rows.Count - 1
    Dim DashName As String = "" & DT_Dash.Rows(i).Item("Name")            

    If DashType = "Pump" Then
        Dim Pumps_UC1 As UC_Pumps = CType(Me.LoadControl("/Main/UserControls/UC_Pumps.ascx"), UC_Pumps)
        Pumps_UC1.ID = i
        Me.divPumpMainBody.Controls.Add(Pumps_UC1)
        Pumps_UC1.SetPumpName = DashName
        ''about 5 more Set properties
      End If
Next i

0 个答案:

没有答案