在这里寻求一些帮助,因为这让我很难过。简而言之,我有一个动态表,它是从函数构建的,显示在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中。
我做错了什么?
答案 0 :(得分:0)
您必须在PostBacks上重新填充和添加动态添加的表,而不仅仅是在初始加载时。有关详细信息,请查看此question的答案。
答案 1 :(得分:0)
好的,所以这就是发生的事情:
1)正如NoAlias所述,需要保留ID。如果我处于“查看”或“编辑”模式,我使用Page_Load设置ViewState变量。
2)我使用了一个单独的BuildViewTable()方法和BuildEditTable()方法,并在那些名为my separate的类中构建了表。
3)现在一切正常了:)谢谢,NoAlias!