回发期间保留动态创建的控件 - VB.net [英] Retaining dynamically created controls during PostBack - VB.net
问题描述
我有,有一个下拉与值1-10列表形式的面板。当在面板上的一个按钮是pssed $ P $,该面板将不可见和第二可见。在第二盘我有被动态生成控件行。行ŧ诶数由上下拉列表则selectedItem决定。
我的问题是,当我要进行验证,然后存储的被动态创建的控件内容的值时,控制器将被删除。
据我所知,这是与页面的生命周期和动态创建的控件的持久性做的,但我不知道要避开这个问题。我已阅读这里的许多其他类似的问题,很少有谁解决这个,所以我仍然不明白工作的例子。这包括动态创建的控件需要在页面加载或pageinit创建建议,怎么会这样,因为我们不知道有多少把握?
任何帮助很多AP preciated,一如既往。
进口DotNetNuke.Entities.Modules
DotNetNuke的进口
进口系统
进口System.Web.UI程序
进口System.Web.UI.WebControls
进口System.Collections.Generic
进口的System.Reflection
进口System.Web.Configuration
进口System.Net.Mail
进口System.Data.SqlClient的部分类视图
继承SeatPlannerModuleBase
实现IActionable
昏暗有效的String =成功私人小组的Page_Load(BYVAL发件人为System.Object的,BYVAL E上System.EventArgs)把手MyBase.Load,Me.Load
尝试 如果没有Page.IsPostBack然后 万一 抓住EXC由于异常模块加载失败
ProcessModuleLoadException(ME,EXC)
结束Try
结束小组公共只读属性ModuleActions()作为Entities.Modules.Actions.ModuleActionCollection实现Entities.Modules.IActionable.ModuleActions
得到
昏暗的操作作为新Entities.Modules.Actions.ModuleActionCollection
Actions.Add(GetNextActionID,Localization.GetString(Entities.Modules.Actions.ModuleActionType.AddContent,LocalResourceFile),Entities.Modules.Actions.ModuleActionType.AddContent,,,EditUrl(),FALSE,DotNetNuke.Security.SecurityAccessLevel .Edit,真,假)
返回操作
到底得的
高端物业保护小组Filldata()
昏暗康恩作为新的SqlConnection()
conn.ConnectionString = WebConfigurationManager.ConnectionStrings(Congress_SeatPlanner_ConnectionString)。的ConnectionString
昏暗QSTR作为字符串=SELECT * FROM [Seat_planner_2013]。[DBO]。[预订]
尝试
使用连接作为新的SqlConnection(conn.ConnectionString)
connection.Open()
昏暗的命令作为新的SqlCommand(QSTR,连接)
昏暗的读者作为SqlDataReader的= Command.ExecuteReader却()
如果reader.Read()然后
尝试
昏暗的标题作为字符串 标题=读卡器(题)
标题= title.Trim
title_Txt.Text =冠军
抓住
title_Txt.Text =
结束Try
尝试
first_name_Txt.Text =读卡器(FIRST_NAME)
抓住
first_name_Txt.Text =
结束Try
尝试
surname_Txt.Text =读卡器(姓)
抓住
surname_Txt.Text =
结束Try
尝试
company_name_Txt.Text =读卡器(COMPANY_NAME)
抓住
company_name_Txt.Text =
结束Try
尝试
contact_number_Txt.Text =读卡器(CONTACT_PHONE)
抓住
contact_number_Txt.Text =
结束Try
尝试
contact_email_Txt.Text =读卡器(CONTACT_EMAIL)
抓住
contact_email_Txt.Text =
结束Try
尝试
number_of_tickets_Ddl.SelectedValue =读卡器(number_of_tickets)
抓住
number_of_tickets_Ddl.SelectedValue =
结束Try
尝试
purchase_date_Txt.Text =读卡器(date_of_purchase)
抓住
purchase_date_Txt.Text =
结束Try
万一
使用完
抓住EX为例外
ErrLabel_Lbl.Visible = TRUE
ErrLabel_Lbl.Text = ex.Message.ToString
结束Try
结束小组保护小组的validate() 如果title_Txt.Text.Length< 2然后
title_error_Lbl.Text =请输入标题
有效=不及格
其他
title_error_Lbl.Text =*
万一
如果first_name_Txt.Text.Length< 1然后
first_name_error_Lbl.Text =请输入名字
有效=不及格
其他
first_name_error_Lbl.Text =*
万一
如果surname_Txt.Text.Length< 1然后
surname_error_Lbl.Text =请输入姓
有效=不及格
其他
surname_error_Lbl.Text =*
万一
如果company_name_Txt.Text.Length< 1然后
comnpany_name_error_Lbl.Text =请输入公司名称
有效=不及格
其他
comnpany_name_error_Lbl.Text =*
万一
如果contact_email_Txt.Text.Length< 1然后
contact_email_error_Lbl.Text =请输入联系人的电子邮件地址
有效=不及格
其他
contact_email_error_Lbl.Text =*
万一
如果contact_number_Txt.Text.Length< 1然后
contact_phone_error_Lbl.Text =请输入联系人的电话号码
有效=不及格
其他
contact_phone_error_Lbl.Text =*
万一
如果number_of_tickets_Ddl.SelectedValue =请选择然后
number_of_tickets_error_Lbl.Text =请选择一个数字的门票分配的
有效=不及格
其他
number_of_tickets_error_Lbl.Text =*
万一
如果purchase_date_Txt.Text.Length< 1然后
date_of_purchase_error_Lbl.Text =请输入您购买车票的日期
有效=不及格
其他
date_of_purchase_error_Lbl.Text =*
万一 如果有效=失败然后
ErrLabel_Lbl.Text =验证失败
其他
ErrLabel_Lbl.Text =验证成功
万一结束小组保护小组validate_step2()这里的验证不起作用由于回传问题结束小组保护小组IterateThroughTitle(BYVAL家长作为对照)
昏暗的计数为整数= 1 对于每个C作为控制在title_Placeholder.Controls
如果c [的GetType()。toString()方法。等于(System.Web.UI.WebControls.TextBox)AndAlso运算c.ID是Nothing然后
DirectCast(C,文本框)。文本=TextBox_Title+ count.ToString()
DirectCast(C,文本框).ID =TextBox_Title_+ count.ToString()
DirectCast(C,文本框).CssClass =DYN_TextBox
数+ = 1
万一 如果c.Controls.Count> 0,则
IterateThroughTitle(三)
万一
下一个
结束小组保护小组IterateThroughFirstname(BYVAL家长作为对照)
昏暗的计数为整数= 1 对于每个C作为控制在firstname_Placeholder.Controls
如果c [的GetType()。toString()方法。等于(System.Web.UI.WebControls.TextBox)AndAlso运算c.ID是Nothing然后
DirectCast(C,文本框)。文本=TextBox_Firstname+ count.ToString()
DirectCast(C,文本框).ID =TextBox_Firstname_+ count.ToString()
DirectCast(C,文本框).CssClass =DYN_TextBox
数+ = 1
万一 如果c.Controls.Count> 0,则
IterateThroughFirstname(三)
万一
下一个
结束小组保护小组IterateThroughSurname(BYVAL家长作为对照)
昏暗的计数为整数= 1 对于每个C作为控制在surname_Placeholder.Controls
如果c [的GetType()。toString()方法。等于(System.Web.UI.WebControls.TextBox)AndAlso运算c.ID是Nothing然后
DirectCast(C,文本框)。文本=TextBox_Surname+ count.ToString()
DirectCast(C,文本框).ID =TextBox_Surname_+ count.ToString()
DirectCast(C,文本框).CssClass =DYN_TextBox
数+ = 1
万一 如果c.Controls.Count> 0,则
IterateThroughSurname(三)
万一
下一个
结束小组保护小组IterateThroughTicketNum(BYVAL家长作为对照)
昏暗的计数为整数= 1 对于每个C作为控制在ticketNum_Placeholder.Controls
如果c [的GetType()。toString()方法。等于(System.Web.UI.WebControls.TextBox)AndAlso运算c.ID是Nothing然后
DirectCast(C,文本框)。文本=TextBox_TicketNum+ count.ToString()
DirectCast(C,文本框).ID =TextBox_TicketNum_+ count.ToString()
DirectCast(C,文本框).CssClass =DYN_TextBox
数+ = 1
万一 如果c.Controls.Count> 0,则
IterateThroughTicketNum(三)
万一
下一个
结束小组保护小组IterateThroughBooking(BYVAL家长作为对照)
昏暗的计数为整数= 1 对于每个C作为控制在booking_Placeholder.Controls
如果c [的GetType()。toString()方法。等于(System.Web.UI.WebControls.Label)AndAlso运算c.ID是Nothing然后
DirectCast(C,标签)。文本=预订号+ count.ToString()
DirectCast(C,标签).ID =BookLabel_+ count.ToString()
DirectCast(C,标签).CssClass =DYN_Label
数+ = 1
万一 如果c.Controls.Count> 0,则
IterateThroughBooking(三)
万一
下一个
结束小组保护小组IterateThroughReservation(BYVAL家长作为对照)
昏暗的计数为整数= 1 对于每个C作为控制在res_Placeholder.Controls
如果c [的GetType()。toString()方法。等于(System.Web.UI.WebControls.Label)AndAlso运算c.ID是Nothing然后
DirectCast(C,标签)。文本=来宾
DirectCast(C,标签).ID =ResLabel_+ count.ToString()
DirectCast(C,标签).CssClass =DYN_Label
数+ = 1
万一 如果c.Controls.Count> 0,则
IterateThroughReservation(三)
万一
下一个
结束小组保护小组Retreive_first_row() CTYPE(Me.FindControl(ResLabel_1),标签)。文本()=您
CTYPE(Me.FindControl(TextBox_Title_1),文本框)。文本()= title_Txt.Text
CTYPE(Me.FindControl(TextBox_Title_1),文本框).Enabled()= FALSE
CTYPE(Me.FindControl(TextBox_Firstname_1),文本框)。文本()= first_name_Txt.Text
CTYPE(Me.FindControl(TextBox_Firstname_1),文本框).Enabled()= FALSE
CTYPE(Me.FindControl(TextBox_Surname_1),文本框)。文本()= surname_Txt.Text
CTYPE(Me.FindControl(TextBox_Surname_1),文本框).Enabled()= FALSE结束小组保护小组CreateTextBoxes() 如果不Page.IsValid然后
返回
万一 昏暗的5.3,整数= number_of_tickets_Ddl.SelectedValue 对于我作为整数= 0到n - 1
res_Placeholder.Controls.Add(新建标签())
booking_Placeholder.Controls.Add(新建标签()) title_Placeholder.Controls.Add(新文本框())
firstname_Placeholder.Controls.Add(新文本框())
surname_Placeholder.Controls.Add(新文本框())
ticketNum_Placeholder.Controls.Add(新文本框()) 下一个 IterateThroughBooking(ME)
IterateThroughReservation(ME)
IterateThroughTitle(ME)
IterateThroughFirstname(ME)
IterateThroughSurname(ME)
IterateThroughTicketNum(ME) Retreive_first_row()结束小组保护小组testconn_submit_Btn_Click(BYVAL发件人为对象,BYVAL E上EventArgs的)把手testconn_submit_Btn.Click Filldata()结束小组保护小组next_submit_Btn_Click(BYVAL发件人为对象,BYVAL E上EventArgs的)把手next_submit_Btn.Click 验证() 如果有效=失败然后 其他 Step1_Pnl.Visible =假
Step2_Pnl.Visible = TRUE
CreateTextBoxes()
Button1.Attributes.Add(onclick事件,validate_step2();返回false;)
万一结束小组保护小组clear_submit_Btn_Click(BYVAL发件人为对象,BYVAL E上EventArgs的)把手clear_submit_Btn.Click title_Txt.Text =
first_name_Txt.Text =
surname_Txt.Text =
company_name_Txt.Text =
contact_number_Txt.Text =
contact_email_Txt.Text =
number_of_tickets_Ddl.SelectedValue =请选择
purchase_date_Txt.Text = title_error_Lbl.Text =*
first_name_error_Lbl.Text =*
surname_error_Lbl.Text =*
comnpany_name_error_Lbl.Text =*
contact_phone_error_Lbl.Text =*
contact_email_error_Lbl.Text =*
number_of_tickets_error_Lbl.Text =*
date_of_purchase_error_Lbl.Text =*结束小组保护小组back_Btn_Click(BYVAL发件人为对象,BYVAL E上EventArgs的)把手back_Btn.Click Step1_Pnl.Visible = TRUE
Step2_Pnl.Visible =假结束小组保护小组next_submit2_Btn_Click(BYVAL发件人为对象,BYVAL E上EventArgs的)把手next_submit2_Btn.Click validate_step2()结束小组末级
第一次的用户选择在下拉一个项目下来,你得到的计数,并创建动态控件。诀窍在于记住计数为下回传
。
您可以使用会话此记住这个数。
现在,当您收到第二个回传
,您可以重新创建在初始化
控件。如果您希望这些动态创建的控件接收事件,加载
为时已晚。
I have a panel with a form that has a drop down list with values 1-10. When a button on the panel is pressed, that panel is made invisible and a second made visible. On the second panel I have rows of controls being generated dynamically. T eh number of rows is determined by the selecteditem on the drop down list.
My problem is that when I want to carry out validation and then storing of the values of the contents of controls that are dynamically created, the controls are removed.
I understand this is to do with the lifecycle of the page and the persistence of the dynamically created controls but I have no idea to get round the problem. I have read many other similar questions on here and few have working examples of who to solve this so I am none the wiser. This includes suggestions that the dynamically created controls need to be created on pageload or pageinit, how can this be since we don't know how many to make?
Any help is much appreciated, as always.
Imports DotNetNuke.Entities.Modules
Imports DotNetNuke
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Collections.Generic
Imports System.Reflection
Imports System.Web.Configuration
Imports System.Net.Mail
Imports System.Data.SqlClient
Partial Class View
Inherits SeatPlannerModuleBase
Implements IActionable
Dim valid As String = "success"
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, Me.Load
Try
If Not Page.IsPostBack Then
End If
Catch exc As Exception 'Module failed to load
ProcessModuleLoadException(Me, exc)
End Try
End Sub
Public ReadOnly Property ModuleActions() As Entities.Modules.Actions.ModuleActionCollection Implements Entities.Modules.IActionable.ModuleActions
Get
Dim Actions As New Entities.Modules.Actions.ModuleActionCollection
Actions.Add(GetNextActionID, Localization.GetString(Entities.Modules.Actions.ModuleActionType.AddContent, LocalResourceFile), Entities.Modules.Actions.ModuleActionType.AddContent, "", "", EditUrl(), False, DotNetNuke.Security.SecurityAccessLevel.Edit, True, False)
Return Actions
End Get
End Property
Protected Sub Filldata()
Dim conn As New SqlConnection()
conn.ConnectionString = WebConfigurationManager.ConnectionStrings("Congress_SeatPlanner_ConnectionString").ConnectionString
Dim Qstr As String = "select * From [Seat_planner_2013].[dbo].[booking]"
Try
Using connection As New SqlConnection(conn.ConnectionString)
connection.Open()
Dim command As New SqlCommand(Qstr, connection)
Dim reader As SqlDataReader = command.ExecuteReader()
If reader.Read() Then
Try
Dim title As String
title = reader("title")
title = title.Trim
title_Txt.Text = title
Catch
title_Txt.Text = ""
End Try
Try
first_name_Txt.Text = reader("first_name")
Catch
first_name_Txt.Text = ""
End Try
Try
surname_Txt.Text = reader("surname")
Catch
surname_Txt.Text = ""
End Try
Try
company_name_Txt.Text = reader("company_name")
Catch
company_name_Txt.Text = ""
End Try
Try
contact_number_Txt.Text = reader("contact_phone")
Catch
contact_number_Txt.Text = ""
End Try
Try
contact_email_Txt.Text = reader("contact_email")
Catch
contact_email_Txt.Text = ""
End Try
Try
number_of_tickets_Ddl.SelectedValue = reader("number_of_tickets")
Catch
number_of_tickets_Ddl.SelectedValue = ""
End Try
Try
purchase_date_Txt.Text = reader("date_of_purchase")
Catch
purchase_date_Txt.Text = ""
End Try
End If
End Using
Catch ex As Exception
ErrLabel_Lbl.Visible = True
ErrLabel_Lbl.Text = ex.Message.ToString
End Try
End Sub
Protected Sub validate()
If title_Txt.Text.Length < 2 Then
title_error_Lbl.Text = "Please enter a title"
valid = "fail"
Else
title_error_Lbl.Text = "*"
End If
If first_name_Txt.Text.Length < 1 Then
first_name_error_Lbl.Text = "Please enter a first name"
valid = "fail"
Else
first_name_error_Lbl.Text = "*"
End If
If surname_Txt.Text.Length < 1 Then
surname_error_Lbl.Text = "Please enter a surname"
valid = "fail"
Else
surname_error_Lbl.Text = "*"
End If
If company_name_Txt.Text.Length < 1 Then
comnpany_name_error_Lbl.Text = "Please enter a company name"
valid = "fail"
Else
comnpany_name_error_Lbl.Text = "*"
End If
If contact_email_Txt.Text.Length < 1 Then
contact_email_error_Lbl.Text = "Please enter a contact email address"
valid = "fail"
Else
contact_email_error_Lbl.Text = "*"
End If
If contact_number_Txt.Text.Length < 1 Then
contact_phone_error_Lbl.Text = "Please enter a contact phone number"
valid = "fail"
Else
contact_phone_error_Lbl.Text = "*"
End If
If number_of_tickets_Ddl.SelectedValue = "Please select" Then
number_of_tickets_error_Lbl.Text = "Please select a number of tickets to allocate"
valid = "fail"
Else
number_of_tickets_error_Lbl.Text = "*"
End If
If purchase_date_Txt.Text.Length < 1 Then
date_of_purchase_error_Lbl.Text = "Please enter the date you purchased the tickets"
valid = "fail"
Else
date_of_purchase_error_Lbl.Text = "*"
End If
If valid = "fail" Then
ErrLabel_Lbl.Text = "Failed validation"
Else
ErrLabel_Lbl.Text = "Validation succeeded"
End If
End Sub
Protected Sub validate_step2()
'validation here that doesn't work due to the postback issue
End Sub
Protected Sub IterateThroughTitle(ByVal parent As Control)
Dim count As Integer = 1
For Each c As Control In title_Placeholder.Controls
If c.[GetType]().ToString().Equals("System.Web.UI.WebControls.TextBox") AndAlso c.ID Is Nothing Then
'DirectCast(c, TextBox).Text = "TextBox_Title " + count.ToString()
DirectCast(c, TextBox).ID = "TextBox_Title_" + count.ToString()
DirectCast(c, TextBox).CssClass = "DYN_TextBox"
count += 1
End If
If c.Controls.Count > 0 Then
IterateThroughTitle(c)
End If
Next
End Sub
Protected Sub IterateThroughFirstname(ByVal parent As Control)
Dim count As Integer = 1
For Each c As Control In firstname_Placeholder.Controls
If c.[GetType]().ToString().Equals("System.Web.UI.WebControls.TextBox") AndAlso c.ID Is Nothing Then
'DirectCast(c, TextBox).Text = "TextBox_Firstname " + count.ToString()
DirectCast(c, TextBox).ID = "TextBox_Firstname_" + count.ToString()
DirectCast(c, TextBox).CssClass = "DYN_TextBox"
count += 1
End If
If c.Controls.Count > 0 Then
IterateThroughFirstname(c)
End If
Next
End Sub
Protected Sub IterateThroughSurname(ByVal parent As Control)
Dim count As Integer = 1
For Each c As Control In surname_Placeholder.Controls
If c.[GetType]().ToString().Equals("System.Web.UI.WebControls.TextBox") AndAlso c.ID Is Nothing Then
'DirectCast(c, TextBox).Text = "TextBox_Surname " + count.ToString()
DirectCast(c, TextBox).ID = "TextBox_Surname_" + count.ToString()
DirectCast(c, TextBox).CssClass = "DYN_TextBox"
count += 1
End If
If c.Controls.Count > 0 Then
IterateThroughSurname(c)
End If
Next
End Sub
Protected Sub IterateThroughTicketNum(ByVal parent As Control)
Dim count As Integer = 1
For Each c As Control In ticketNum_Placeholder.Controls
If c.[GetType]().ToString().Equals("System.Web.UI.WebControls.TextBox") AndAlso c.ID Is Nothing Then
'DirectCast(c, TextBox).Text = "TextBox_TicketNum " + count.ToString()
DirectCast(c, TextBox).ID = "TextBox_TicketNum_" + count.ToString()
DirectCast(c, TextBox).CssClass = "DYN_TextBox"
count += 1
End If
If c.Controls.Count > 0 Then
IterateThroughTicketNum(c)
End If
Next
End Sub
Protected Sub IterateThroughBooking(ByVal parent As Control)
Dim count As Integer = 1
For Each c As Control In booking_Placeholder.Controls
If c.[GetType]().ToString().Equals("System.Web.UI.WebControls.Label") AndAlso c.ID Is Nothing Then
DirectCast(c, Label).Text = "Booking #" + count.ToString()
DirectCast(c, Label).ID = "BookLabel_" + count.ToString()
DirectCast(c, Label).CssClass = "DYN_Label"
count += 1
End If
If c.Controls.Count > 0 Then
IterateThroughBooking(c)
End If
Next
End Sub
Protected Sub IterateThroughReservation(ByVal parent As Control)
Dim count As Integer = 1
For Each c As Control In res_Placeholder.Controls
If c.[GetType]().ToString().Equals("System.Web.UI.WebControls.Label") AndAlso c.ID Is Nothing Then
DirectCast(c, Label).Text = "Guest"
DirectCast(c, Label).ID = "ResLabel_" + count.ToString()
DirectCast(c, Label).CssClass = "DYN_Label"
count += 1
End If
If c.Controls.Count > 0 Then
IterateThroughReservation(c)
End If
Next
End Sub
Protected Sub Retreive_first_row()
CType(Me.FindControl("ResLabel_1"), Label).Text() = "You"
CType(Me.FindControl("TextBox_Title_1"), TextBox).Text() = title_Txt.Text
CType(Me.FindControl("TextBox_Title_1"), TextBox).Enabled() = False
CType(Me.FindControl("TextBox_Firstname_1"), TextBox).Text() = first_name_Txt.Text
CType(Me.FindControl("TextBox_Firstname_1"), TextBox).Enabled() = False
CType(Me.FindControl("TextBox_Surname_1"), TextBox).Text() = surname_Txt.Text
CType(Me.FindControl("TextBox_Surname_1"), TextBox).Enabled() = False
End Sub
Protected Sub CreateTextBoxes()
If Not Page.IsValid Then
Return
End If
Dim n As Integer = number_of_tickets_Ddl.SelectedValue
For i As Integer = 0 To n - 1
res_Placeholder.Controls.Add(New Label())
booking_Placeholder.Controls.Add(New Label())
title_Placeholder.Controls.Add(New TextBox())
firstname_Placeholder.Controls.Add(New TextBox())
surname_Placeholder.Controls.Add(New TextBox())
ticketNum_Placeholder.Controls.Add(New TextBox())
Next
IterateThroughBooking(Me)
IterateThroughReservation(Me)
IterateThroughTitle(Me)
IterateThroughFirstname(Me)
IterateThroughSurname(Me)
IterateThroughTicketNum(Me)
Retreive_first_row()
End Sub
Protected Sub testconn_submit_Btn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles testconn_submit_Btn.Click
Filldata()
End Sub
Protected Sub next_submit_Btn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles next_submit_Btn.Click
validate()
If valid = "fail" Then
Else
Step1_Pnl.Visible = False
Step2_Pnl.Visible = True
CreateTextBoxes()
Button1.Attributes.Add("OnClick", "validate_step2(); return false;")
End If
End Sub
Protected Sub clear_submit_Btn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles clear_submit_Btn.Click
title_Txt.Text = ""
first_name_Txt.Text = ""
surname_Txt.Text = ""
company_name_Txt.Text = ""
contact_number_Txt.Text = ""
contact_email_Txt.Text = ""
number_of_tickets_Ddl.SelectedValue = "Please select"
purchase_date_Txt.Text = ""
title_error_Lbl.Text = "*"
first_name_error_Lbl.Text = "*"
surname_error_Lbl.Text = "*"
comnpany_name_error_Lbl.Text = "*"
contact_phone_error_Lbl.Text = "*"
contact_email_error_Lbl.Text = "*"
number_of_tickets_error_Lbl.Text = "*"
date_of_purchase_error_Lbl.Text = "*"
End Sub
Protected Sub back_Btn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles back_Btn.Click
Step1_Pnl.Visible = True
Step2_Pnl.Visible = False
End Sub
Protected Sub next_submit2_Btn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles next_submit2_Btn.Click
validate_step2()
End Sub
End Class
The first time your user selects an Item in the drop down, you get the count and create dynamic controls. The trick lies in remembering the count for the next PostBack
.
You can use the session for this to remember this count.
Now when you receive the second PostBack
, you can recreate the controls on Init
. If you want these dynamically created controls to receive events, Load
is too late.
这篇关于回发期间保留动态创建的控件 - VB.net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!