【发布时间】:2010-12-18 19:37:42
【问题描述】:
我正在尝试构建一个在使用时自行生成的表单。我创建了一个非常简单的示例,与我在下面尝试做的事情松散相关,但这说明了问题。
用户在文本框中键入一个单词,单击按钮,一个新的文本框将加载到面板中,其中包含用户输入的原始文本框中的值。然后,用户应该能够键入其他/相同的内容,并通过单击按钮在其中创建另一个文本框,基本上允许 0,1,..,n 文本框出现在表单上的“txtFeeder”文本框上方。
问题是每次单击按钮时,它都不会添加新控件,它似乎只是用新的(增量)ID 更新已经创建的控件。我不确定我是否做错了什么,或者我想做的事情无法完成(我很难相信)?
这是 .aspx...
<form id="frmMain" runat="server">
<asp:Panel ID="pnlAdded" runat="server"></asp:Panel>
<asp:TextBox ID="txtFeeder" runat="server"></asp:TextBox>
<asp:Button ID="btnFeedPanel" runat="server" Text="Button" />
</form>
...这里是 .aspx.vb...
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
ViewState.Add("elementCount", 0)
End If
End Sub
Protected Sub btnFeedPanel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFeedPanel.Click
ViewState("elementCount") += 1
Dim txtNew = New TextBox
txtNew.ID = "txtElement" & ViewState("elementCount")
txtNew.Text = txtFeeder.Text
pnlAdded.Controls.Add(txtNew)
txtNew = Nothing
End Sub
谢谢
【问题讨论】:
标签: asp.net vb.net web-applications dynamic webforms