如何在vb.net asp中创建面板数组

时间:2014-02-12 21:30:04

标签: asp.net arrays vb.net

我需要3个面板。而不是手动命名这个面板我想要一个面板数组?我怎么能在VB.net和ASP中做到这一点

在我的ASP页面中我有

<asp:Panel ID="Panel1" runat="server"></asp:Panel>

然后在VB.net中我生成一个面板数组。这将被添加到Panel1。 这是我到目前为止(在循环内)

Dim DivPanel() As Panel = Nothing
For i = 0 To 2
   DivPanel(i) = new panel
   DivPanel(i).controls.add(txtBox)
   Panel1.controls.add(DivPanel(i))
Next

我在“DivPanel(i)=新面板”中收到错误消息。 错误是“NullReferenceException被捕获”

请建议...非常感谢谢谢

1 个答案:

答案 0 :(得分:3)

您收到错误是因为您已声明了数组但尚未在此处初始化它:

Dim DivPanel() As Panel = Nothing

但是,您根本不需要该数组:

For i = 0 To 2
   Dim panel = new Panel()
   Dim txtBox = new TextBox()
   panel.controls.add(txtBox)
   Panel1.controls.add(panel)
Next

请注意,我还为每个面板创建了一个TextBox,您不能使用相同的实例。

请记住最迟在Page_Load中使用与之前相同的ID重新创建每个回发上的动态创建的控件。在您需要知道已经创建了多少控件之前。您可以使用ViewState来保留该号码。

可推荐的读物:

或者您使用内置Data-Bound Control之类的Repeater自动执行此操作。您只需设置DataSource并致电DataBind()。

以下是关于实施的类似问题的答案: