好的,所以这是我的基本ASP.NET页面设置:我有一个带有GridView的页面,里面有ContentTemplates。您可以随时添加行并编辑/删除行。有一个“新建”按钮可以创建一个新行。
所有这些数据都绑定到自定义数据对象。因此,如果我有一个GridView的“People”并且每行都有“FirstName”,“LastName”和“Gender”(使用TextBox和DropDown控件),那么我就有一个“Person”对象,它具有“FirstName”的公共属性,“LastName”等我正确设置了绑定,我可以将数据从对象推送到GridView中,并使用Session变量保存对象。我的页面生命周期结构如下所示:
Page_Load
:从List(Of Person)
Session()
List(Of Person)
。List(Of Person)
将被保存回Session()
,然后是DataBound到GridView(以及任何后续字段也是DataBound,例如DropDownList。我的问题是:每当我在GridView中填入行,然后添加一个新行(没有任何数据库保存),我的字段就会清除,并且不会在PostBacks中保留。那么,如何在回发中使用数据绑定来保留我的自定义数据对象?
答案 0 :(得分:1)
在Pre_Init事件中使用自定义数据对象。
将数据保存为ViewState,而不是会话。通过这种方式,您可以确保不会失去会话,从而确保您的工作。
答案 1 :(得分:0)
自己想出来。我只需要处理TextChanged
,SelectedIndexChanged
等事件,然后将新数据保存到我的自定义对象中。现在我考虑一下是有道理的。
感谢大家的帮助。