如果可能的话,我需要能够在标记中向ASP.NET中的下拉列表添加属性。我遇到了与here相同的问题。下面动态创建的代码在回发时不会持久。
protected void FormGV_RowDataBound(object sender, GridViewRowEventArgs e){
...
listItem.Attributes.Add("DateOfService", form.sfc.DateOfThisService.ToString());
AnswerDD.Items.Add(listItem);
...
字符串
然后在一个按钮点击事件中,我使用了属性,但它是空的。
dateOfWork = AnswerDD.SelectedItem.Attributes["DateOfService"].ToDate();
型
我可以确认属性最初是存储的。我研究了页面的生命周期,并不完全确定如何使用什么方法来添加动态代码以使其持久化。正如您所看到的,我使用RowDataBound方法动态创建属性,因此无法使用PreInit方法。因此,我希望在标记中创建属性,然后动态填充它。我应该在调用属性的计数为0,因此属性并不是空的,它只是不存在。
1条答案
按热度按时间gkl3eglg1#
若要将属性添加到ASP.NET标记中的属性列表并确保其在回发过程中保持不变,可以使用
ViewState
存储属性值。下面是如何实现此目的的示例:1.将OnDataBound属性添加到标记中的GridView:
1.在代码隐藏中,修改
RowDataBound
事件处理程序以将属性值存储在ViewState
:中
1.实现
OnDataBound
事件处理程序以在回发时设置回属性值: