在FormView内的PlaceHolder中动态生成内容?

时间:2013-06-30 00:57:05

标签: asp.net vb.net dynamic formview

在这里寻求一些帮助,因为这让我很难过。简而言之,我有一个动态表,它是从函数构建的,显示在FormView内的占位符中。

我在FormView的EditItemTemplate中有一个'save'按钮,CommandName =“Save” - 我有一个Select Case(在这里使用VB)和(几乎)一切都按预期工作。

然而,当我在Code Behind中拉我的PlaceHolder时,我在PlaceHolder中没有显示任何控件。

这是一个简短的概述:

FormView ItemTemplate有一个View_PlaceHolder,可以正确显示动态生成的表中的数据。 FormView EditItemTemplate有一个Edit_PlaceHolder,它将动态生成的表中的相同数据加载到TextBox中(工作正常,相同的数据显示为预期)

单击“保存”时,我当前的代码为:

Dim Edit_PlaceHolder as PlaceHolder = FormView1.FindControl("Edit_FV_PlaceHolder")
Dim EditTable as Table = Edit_PlaceHolder.FindControl("Edit_Plan_Holder")

Edit_PlaceHolder不是什么,但在Controls.Count中有0个控件

哦,还有一点信息 - 我的表已构建并添加到FormView.DataBound事件中的PlaceHolder中。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您必须在PostBacks上重新填充和添加动态添加的表,而不仅仅是在初始加载时。有关详细信息,请查看此question的答案。

答案 1 :(得分:0)

好的,所以这就是发生的事情:

1)正如NoAlias所述,需要保留ID。如果我处于“查看”或“编辑”模式,我使用Page_Load设置ViewState变量。

2)我使用了一个单独的BuildViewTable()方法和BuildEditTable()方法,并在那些名为my separate的类中构建了表。

3)现在一切正常了:)谢谢,NoAlias!