我有一个GridView
与一些BoundFields
和两个TemplateFields
。在这两个TemplateFields
中,我动态地创建了包含DropDownList
和TextBox
的UserControls
,用户可以对其进行修改。动态列在回发后消失
当我试图获得PostBack
之后的控件值时,BoundFields
中的值仍然存在,但我的动态控件消失。我可以再次创建它们,但它不会获得用户的值......如何在丢失之前获取这些值?
下面是我的一些代码:
在RowDataBound
事件:
Select Case type
Case "BooleanBis"
e.Row.Cells(2).Controls.Clear()
Dim list1 As BooleanBisList = New BooleanBisList(avant, False)
e.Row.Cells(2).Controls.Add(list1)
e.Row.Cells(4).Controls.Clear()
Dim list2 As BooleanBisList = New BooleanBisList(apres, True)
e.Row.Cells(4).Controls.Add(list2)
Case "Boolean"
e.Row.Cells(2).Controls.Clear()
Dim list3 As BooleanList = New BooleanList(avant, False)
e.Row.Cells(2).Controls.Add(list3)
e.Row.Cells(4).Controls.Clear()
Dim list4 As BooleanList = New BooleanList(apres, True)
e.Row.Cells(4).Controls.Add(list4)
End Select
在我的按钮单击事件,我试图让用户控制:
Case "String"
temp.ChampValeurApres = DirectCast(Tableau1.Rows(i).Cells(selectedColumn).Controls(1), TextBox).Text
但我得到它不存在的错误。
非常感谢!我仍然有一个问题,我有只读控件的专栏。并且这些控件的值在回发之后不会被检索。任何想法 ? – user874854
@ user874854:'readonly'控件不保留ViewState中客户端的更改(仅在服务器端进行更改)。通过[Attributes](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.webcontrol.attributes.aspx)集合使其成为'readonly',例如:'TextBox1.Attributes 。新增( “只读”, “只读”);'。在这种方式你愚弄ASP.NET。看看[这里](http://www.codeproject.com/KB/aspnet/Readonly.aspx)了解更多信息。 –