【问题标题】:How to create a User Control on button click in asp.net using vb如何使用vb在asp.net中单击按钮创建用户控件
【发布时间】:2015-07-06 22:54:23
【问题描述】:

我要使用的控件已经在我的页面中注册了。

 <%@ Register Src="~/MEDCONTROLS/statform.ascx" TagPrefix="uc1" TagName="statform" %>

我正在使用此代码在我的页面中显示它。 (使用不同的 id && 不同的 TempHosp#)

<uc1:statform runat="server" TempHospNum="ER101" ID="statform1" />
<uc1:statform runat="server" TempHospNum="ER102" ID="statform2" />
<uc1:statform runat="server" TempHospNum="ER103" ID="statform3" />

现在我需要做的是,在单击按钮事件上,它将创建一个新的用户控件,实际上是相同的用户控件,但只有不同的 id 和不同的属性,例如。

编辑

  Protected Sub btnAddUserControl_Click(sender As Object, e As EventArgs) Handles btnAddUserControl.Click

     'Generate user control with a TempHospnum = "ER104" and id="statform4"
  End Sub

现在它只在 page.init 中添加 BUT,而不是在 Button_click 上

'NOT WORKING
 Protected Sub btnNewBed_Click(sender As Object, e As EventArgs) Handles btnNewBed.Click
     Dim myControl As statform = Page.LoadControl("~/MEDCONTROLS/statform.ascx")
     myControl.ID = "statform13"
     myControl.TempHospNum = "ER113"
     myControl.ERBedNumber = "Bed13"
     form1.Controls.Add(myControl)
     myControl.Visible = True

 End Sub

'This is working but this is not what I needed
 Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
     Dim myControl As statform = Page.LoadControl("~/MEDCONTROLS/statform.ascx")
     myControl.ID = "statform13"
     myControl.TempHospNum = "ER113"
     myControl.ERBedNumber = "Bed13"
     form1.Controls.Add(myControl)
     myControl.Visible = True
 End Sub

【问题讨论】:

    标签: asp.net vb.net user-controls


    【解决方案1】:

    使用引用用户控件类名的变量,并使用 Page.LoadControl。

    您可以与添加到用户控件类定义的任何属性进行交互。

    dim myControl as YourUserControlClassName = Page.LoadControl("~/yourlayoutfilepath/yourUserControlFile.ascx")
    myControl.ID="stratFormX"
    Me.Controls.Add(myControl)
    

    【讨论】:

    • 如何在我的页面@trucker_jim 上显示生成的用户控件?
    • Me.Controls.Add(myControl)
    • 我已经在我的按钮点击事件中添加了它,但是没有显示新的用户控件...
    • 它可能出现在页面底部。您需要将其添加到页面上的正确位置...
    • 我观察到的是,当我的代码放在 Click 事件上时,没有任何反应。但是当我将代码放在 Page_Init 中时,它添加了。为什么?
    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2012-03-10
    相关资源
    最近更新 更多