我在asp.net页面上动态创建了一个表格,通过创建基于行数的行在来自SQL数据库的数据集中。我使用了for循环来创建我的行和单元格,并在page_load()函数中使用填充的下拉列表。我的表格的创建方式应该是这样的,但是我需要在每行中的每个单元格获取选定的项目文本,以便在单击提交按钮后将其存储回数据库表格。我最初在我的asp页面上有一个占位符,并将其替换为加载时创建的表格。出于某种原因,当我尝试使用从表格单元格的下拉列表中获取选定项目的值在vb代码中的表格中动态创建
对于每个R作为的TableRow在LineupTable.Rows
msgbox(EmployeeDDL.SelectedItem.Text)
下一个R
它给了我一个空值误差employeeddl.selecteditem.text。
这就是我如何生成我的表。
“动态创建表格的行和单元格,并用适当的控制和/或信息
Dim numrows As Integer = dtEQP.Rows.Count
Dim numcells As Integer = 6
Dim j As Integer
For j = 0 To numrows - 1
r = New TableRow()
c1 = New TableCell() With {.Width = 300}
c1.Controls.Add(New LiteralControl(dtEQP.Rows(j).ItemArray(0)))
r.Cells.Add(c1)
c2 = New TableCell() With {.Width = 200}
Dim EmployeeDDL As New DropDownList()
EmployeeDDL.DataSource = dsEMP
EmployeeDDL.DataTextField = "FirstName"
EmployeeDDL.DataValueField = "ID"
EmployeeDDL.DataBind()
EmployeeDDL.Items.Insert(0, New ListItem("", "-1"))
c2.Controls.Add(EmployeeDDL)
r.Cells.Add(c2)
c3 = New TableCell() With {.Width = 180}
Dim CodeDDL As New DropDownList()
CodeDDL.Items.Add("0-Running")
CodeDDL.Items.Add("99-Idle")
CodeDDL.Items.Add("60-Down")
CodeDDL.Items.Add("1-Weather")
CodeDDL.SelectedValue = "99-Idle"
c3.Controls.Add(CodeDDL)
r.Cells.Add(c3)
c4 = New TableCell() With {.Width = 100}
Dim RideDDL1 As New DropDownList()
RideDDL1.DataSource = dsRide
RideDDL1.DataTextField = "Ridename"
RideDDL1.DataValueField = "RideID"
RideDDL1.DataBind()
RideDDL1.Items.Insert(0, New ListItem("", "-1"))
c4.Controls.Add(RideDDL1)
r.Cells.Add(c4)
c5 = New TableCell() With {.Width = 200}
Dim OTddl1 As New DropDownList()
OTddl1.DataSource = dsEMP2
OTddl1.DataTextField = "FirstName"
OTddl1.DataValueField = "ID"
OTddl1.DataBind()
OTddl1.Items.Insert(0, New ListItem("", "-1"))
c5.Controls.Add(OTddl1)
r.Cells.Add(c5)
c6 = New TableCell() With {.Width = 350}
Dim CommentsTxtBx As New TextBox()
c6.Controls.Add(CommentsTxtBx)
r.Cells.Add(c6)
LineupTable.Rows.Add(r)
Next j
如何,我应该在我的点击子程序来获取这个值来得到什么实际选择任何想法填充它们?
你在哪里创建控件?你在哪里调用你的循环来获取选定的项目?这看起来可能是页面生命周期的问题。 – MaCron
在page_load();中创建控件,表格,表格和表格单元格。调用我的循环来获取我的save_click() –
中的选定项目请记住,页面加载发生在点击按钮之前,因此如果您重新创建pageload上的控件,则在点击事件发生时它们是空白的,而且如果你不会在回发中创建你的控件,它们不会存在,你需要在oninit中创建你的控件。 [https://msdn.microsoft.com/en-us/library/ms178472.aspx]是了解页面生命周期的好文档。 – MaCron