【发布时间】:2012-01-24 18:48:00
【问题描述】:
这里有一个艰难的。
我将一些值从 Gridview 更新 Click 事件传递到弹出的 ASP.net 页面,该页面根据在所选网格行的特定单元格中找到的句子数在占位符中动态构建一系列文本框。
构建的框代表在所选行的单元格中找到的每个句子。每个句子都用于翻译,用户将数据输入到第二个动态生成的文本框中。
这一切都很好。
现在我在第二个文本框旁边有一个列表框,它有时有 1 个或多个变量需要放入翻译的句子中。我在列表框上设置了一个悬停菜单,以便我可以选择变量并将其插入到第二个文本框中的句子末尾。
我的问题是在动态创建的列表框上生成点击事件。有点像....
Protected Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
TextBox1.Text = TextBox1.Text & ListBox1.SelectedValue
ListBox1.SelectedValue = Nothing
End Sub
但回想一下,我的 Listbox 和其他文本框都是完全用这段代码动态构建的,其中 num 是在原始 gridview 行中找到的句子数...
Dim num As Integer = Session("lineNums") ' Number of sentences from original Gridview.
Dim MainContent As ContentPlaceHolder = CType(Page.Master.FindControl("ContentPlaceHolder1"), ContentPlaceHolder)
Dim ph As PlaceHolder = DirectCast(MainContent.FindControl("PlaceHolder1"), PlaceHolder)
For I = 1 To num
' ***************************************************
' * Build English Header
Dim txtD As New TextBox
txtD.ID = "txtDEdit" & I.ToString("D2")
ph.Controls.Add(txtD)
Dim litCtrlD As New Literal
litCtrlD.ID = "litCtrlD" & I.ToString("D2")
litCtrlD.Text = "<br />"
ph.Controls.Add(litCtrlD)
txtD.Text = "ENGLISH"
' ***************************************************
' * Build English Textbox
Dim txtA As New TextBox
txtA.ID = "txtAEdit" & I.ToString("D2")
ph.Controls.Add(txtA)
Dim litCtrla As New Literal
litCtrla.ID = "litCtrla" & I.ToString("D2")
litCtrla.Text = "<br />"
ph.Controls.Add(litCtrla)
' ***************************************************
' * Build Translator Header
Dim txtE As New TextBox
txtE.ID = "txtEEdit" & I.ToString("D2")
ph.Controls.Add(txtE)
Dim litCtrlE As New Literal
litCtrlE.ID = "litCtrlE" & I.ToString("D2")
litCtrlE.Text = "<br />"
ph.Controls.Add(litCtrlE)
txtE.Text = "TRANSLATION"
' ***************************************************
' * Build Translator Textbox
Dim txtB As New TextBox
txtB.ID = "txtBEdit" & I.ToString("D2")
ph.Controls.Add(txtB)
Dim litCtrl As New Literal
litCtrl.ID = "litCtrl" & I.ToString("D2")
ph.Controls.Add(litCtrl)
' ******************************
' * Variable selection box
Dim lstF As New ListBox
lstF.ID = "lstFEdit" & I.ToString("D2")
ph.Controls.Add(lstF)
Dim litCtrlF As New Literal
litCtrlF.ID = "litCtrlF" & I.ToString("D2")
ph.Controls.Add(litCtrlF)
' ******************************
' * Hover Control Variable selection box
Dim lstG As New ListBox
lstG.ID = "lstGEdit" & I.ToString("D2")
ph.Controls.Add(lstG)
Dim litCtrlG As New Literal
litCtrlG.ID = "litCtrlG" & I.ToString("D2")
ph.Controls.Add(litCtrlG)
Next I
我正在尝试执行动态构建的 lstG 列表框控件的 Click 事件。并填充动态构建的 texbox 控件 txtB。
感谢所有帮助。
【问题讨论】: